{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c979f719-a7bd-4392-86f9-f699220b2c93",
   "metadata": {},
   "outputs": [],
   "source": [
    "# this is for working with census tracts and VTD precincts\n",
    "from shapely.geometry import Point, LineString, Polygon\n",
    "import shapely\n",
    "import geopandas as gpd\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from numpy import random\n",
    "from scipy.stats import norm\n",
    "import math\n",
    "#tractGeomFile = gpd.read_file(\"state_map_files/fl_pl2020_t.shp\")  #Boo!  Only has geometries.  do not use\n",
    "tractPopFile = gpd.read_file(\"state_map_files/oh_pl2020_t.dbf\") #for Texas, need only this file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a8590a2a-0527-45ab-a4b3-fe0fdaa45be2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>STATEFP20</th>\n",
       "      <th>COUNTYFP20</th>\n",
       "      <th>TRACTCE20</th>\n",
       "      <th>GEOID20</th>\n",
       "      <th>NAME20</th>\n",
       "      <th>NAMELSAD20</th>\n",
       "      <th>MTFCC20</th>\n",
       "      <th>FUNCSTAT20</th>\n",
       "      <th>ALAND20</th>\n",
       "      <th>AWATER20</th>\n",
       "      <th>...</th>\n",
       "      <th>P0050002</th>\n",
       "      <th>P0050003</th>\n",
       "      <th>P0050004</th>\n",
       "      <th>P0050005</th>\n",
       "      <th>P0050006</th>\n",
       "      <th>P0050007</th>\n",
       "      <th>P0050008</th>\n",
       "      <th>P0050009</th>\n",
       "      <th>P0050010</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>39</td>\n",
       "      <td>153</td>\n",
       "      <td>533102</td>\n",
       "      <td>39153533102</td>\n",
       "      <td>5331.02</td>\n",
       "      <td>Census Tract</td>\n",
       "      <td>G5020</td>\n",
       "      <td>S</td>\n",
       "      <td>5924402</td>\n",
       "      <td>225599</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>POLYGON ((-81.44045 41.25459, -81.43934 41.254...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>39</td>\n",
       "      <td>153</td>\n",
       "      <td>533200</td>\n",
       "      <td>39153533200</td>\n",
       "      <td>5332</td>\n",
       "      <td>Census Tract</td>\n",
       "      <td>G5020</td>\n",
       "      <td>S</td>\n",
       "      <td>16548913</td>\n",
       "      <td>79769</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>POLYGON ((-81.44044 41.21441, -81.44044 41.217...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>39</td>\n",
       "      <td>029</td>\n",
       "      <td>951600</td>\n",
       "      <td>39029951600</td>\n",
       "      <td>9516</td>\n",
       "      <td>Census Tract</td>\n",
       "      <td>G5020</td>\n",
       "      <td>S</td>\n",
       "      <td>96544091</td>\n",
       "      <td>950949</td>\n",
       "      <td>...</td>\n",
       "      <td>150</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>146</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>POLYGON ((-80.63997 40.74541, -80.63996 40.745...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>39</td>\n",
       "      <td>093</td>\n",
       "      <td>097100</td>\n",
       "      <td>39093097100</td>\n",
       "      <td>971</td>\n",
       "      <td>Census Tract</td>\n",
       "      <td>G5020</td>\n",
       "      <td>S</td>\n",
       "      <td>154468293</td>\n",
       "      <td>927233</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>POLYGON ((-82.34128 41.18795, -82.34123 41.188...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>39</td>\n",
       "      <td>093</td>\n",
       "      <td>010200</td>\n",
       "      <td>39093010200</td>\n",
       "      <td>102</td>\n",
       "      <td>Census Tract</td>\n",
       "      <td>G5020</td>\n",
       "      <td>S</td>\n",
       "      <td>4337885</td>\n",
       "      <td>1552203</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>POLYGON ((-82.01893 41.49378, -82.01893 41.494...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 345 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  STATEFP20 COUNTYFP20 TRACTCE20      GEOID20   NAME20    NAMELSAD20 MTFCC20  \\\n",
       "0        39        153    533102  39153533102  5331.02  Census Tract   G5020   \n",
       "1        39        153    533200  39153533200     5332  Census Tract   G5020   \n",
       "2        39        029    951600  39029951600     9516  Census Tract   G5020   \n",
       "3        39        093    097100  39093097100      971  Census Tract   G5020   \n",
       "4        39        093    010200  39093010200      102  Census Tract   G5020   \n",
       "\n",
       "  FUNCSTAT20    ALAND20  AWATER20  ... P0050002 P0050003 P0050004 P0050005  \\\n",
       "0          S    5924402    225599  ...        0        0        0        0   \n",
       "1          S   16548913     79769  ...        0        0        0        0   \n",
       "2          S   96544091    950949  ...      150        0        4      146   \n",
       "3          S  154468293    927233  ...        0        0        0        0   \n",
       "4          S    4337885   1552203  ...        0        0        0        0   \n",
       "\n",
       "  P0050006 P0050007 P0050008 P0050009 P0050010  \\\n",
       "0        0        4        0        0        4   \n",
       "1        0        1        0        0        1   \n",
       "2        0        2        0        0        2   \n",
       "3        0        0        0        0        0   \n",
       "4        0        0        0        0        0   \n",
       "\n",
       "                                            geometry  \n",
       "0  POLYGON ((-81.44045 41.25459, -81.43934 41.254...  \n",
       "1  POLYGON ((-81.44044 41.21441, -81.44044 41.217...  \n",
       "2  POLYGON ((-80.63997 40.74541, -80.63996 40.745...  \n",
       "3  POLYGON ((-82.34128 41.18795, -82.34123 41.188...  \n",
       "4  POLYGON ((-82.01893 41.49378, -82.01893 41.494...  \n",
       "\n",
       "[5 rows x 345 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tractPopFile.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "a7a90b04-4b48-4ab8-9195-8d953907c3fb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "there are 3168 popn tracts for OH\n"
     ]
    }
   ],
   "source": [
    "# EXTRACT TRACT GEOMETRIES AND POPULATIONS INTO LISTS, COMPUTE TRACT AREAS\n",
    "# If the population and geometry data are in one file, this should work.\n",
    "STATE = \"OH\"\n",
    "tractGeom = tractPopFile['geometry']  #for some states, replace with tractGeomFile\n",
    "tractPop = tractPopFile['P0010001']\n",
    "tractVAP = tractPopFile['P0030001']   #NEW 3/2/22 - USE VAP\n",
    "# tractPop2 = tractPopFile['P0020001']   #not needed; confirmed that this matches P00100001 exactly\n",
    "tractHisp = tractPopFile['P0040002']   #NEW 3/2/22 - USE VAP\n",
    "tractBlack = tractPopFile['P0030004']  #NEW 3/2/22 - USE VAP\n",
    "nTracts = len(tractPop)\n",
    "print(\"there are {0} popn tracts for {1}\".format(nTracts, STATE) )\n",
    "tractArea = [0.]*nTracts\n",
    "for t in range (0,nTracts) :\n",
    "    tractArea[t] = tractGeom[t].area\n",
    "isSkippedTract = [0] *nTracts  #this will house a temporary list of tracts for manipulation\n",
    "tractPop = tractPop.to_numpy()  #to avoid panda overwrite grousing\n",
    "tractBlack= tractBlack.to_numpy()\n",
    "tractHisp = tractHisp.to_numpy()\n",
    "tractVAP = tractVAP.to_numpy()\n",
    "stateVAP = np.sum(tractVAP)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c90b3908-e2e3-46b8-98e5-ae285eca1ee3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is Hispanic population by total population OH voter-age population\n",
      "state pop= 11799448 VAP pct Hispanic is  0.03649478548175945\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#What is our correlation of Hispanic pop to total pop?\n",
    "print(\"this is Hispanic population by total population \"+STATE,\"voter-age population\")\n",
    "print(\"state pop=\",np.sum(tractPop), \"VAP pct Hispanic is \",np.sum(tractHisp)/np.sum(tractVAP) )\n",
    "fig, ax = plt.subplots()\n",
    "ax.set(xlabel=\"tract Voter Age Population\", ylabel=\"tract Hispanic pop\")\n",
    "x = [0,10000]\n",
    "y = [0,10000]\n",
    "plt.plot(tractVAP, tractHisp, marker='.',linestyle=\"none\")\n",
    "plt.plot(x,y,linestyle = 'dashed')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "237df16d-af87-47ba-acb1-2ef5702c1406",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is voter-age Black population by total VAP OH\n",
      "total state pop= 11799448 pct Black is  0.11790450067020998\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#What is our correlation of Black pop to total pop?\n",
    "print(\"this is voter-age Black population by total VAP \"+STATE)\n",
    "print(\"total state pop=\",np.sum(tractPop), \"pct Black is \",np.sum(tractBlack)/np.sum(tractVAP) )\n",
    "fig, ax = plt.subplots()\n",
    "ax.set(xlabel=\"tract VAP\", ylabel=\"tract Black VAP\")\n",
    "x = [0,10000]\n",
    "y = [0,10000]\n",
    "plt.plot(tractVAP, tractBlack, marker='.',linestyle=\"none\")\n",
    "plt.plot(x,y,linestyle = 'dashed')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "10b208af-8eb0-45fa-9dc0-8873eb797200",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a histogram of Census tract population for OH\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#for curiosity, let's plot the distribution of populations among tracts\n",
    "n_bins=50\n",
    "print(\"this is a histogram of Census tract population for \"+STATE)        \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(tractPop, bins=n_bins)\n",
    "plt.show() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "4aac60d6-4cce-469b-b075-ad743acda38c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is population by Census tract for OH\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAneElEQVR4nO3de3hd1Xnn8e+7z5GMbYQRvoMv2Fyc2E4ysR0QJZOEXAjO0LiBtuHSadPUoXkmeTqZts+UJBMmw0yn6UwzT9qnnhpKmZl2zKVgCDRDCoRyS4LAkguxDcgIgWzZ2JJl2QhsLB3tNX/svY/2OdpH2rpL27/P8/ixzj5777OWztF71n7X2muZcw4REckub7ILICIi40uBXkQk4xToRUQyToFeRCTjFOhFRDIuP9kFSDJv3jx3/vnnT3YxRESmjcbGxiPOuflJz03JQH/++efT0NAw2cUQEZk2zKy10nNK3YiIZJwCvYhIxinQi4hknAK9iEjGKdCLiGScAr2ISMZlKtA3tnax5clmGlu7JrsoIiJTxpQcRz8Sja1d3HhHPT0Fn+q8x7bNdaxfXjvZxRIRmXSZadHXt3TSU/DxHfQWfOpbOie7SCIiU0JmAn3dyrlU5z1yBlV5j7qVcye7SCIiU0JmUjfrl9eybXMd9S2d1K2cq7SNiEgoM4EegmCvAC8iUiozqRsREUmWqUCv4ZUiIgNlJnWj4ZUiIsky06LX8EoRkWSZCfQaXikikiwzqRsNrxQRSZaZQA8aXikikiQzqRsREUmmQC8iknGpAr2ZXWVmTWbWbGY3Jzx/o5n9Ivz3czP7UNpjRURkfA0Z6M0sB2wBNgKrgevNbHXZbm8AH3fOfRD4z8DtwzhWRETGUZoW/SVAs3OuxTnXA9wDbIrv4Jz7uXMuuh21HliS9lgRERlfaQL9ecD+2OO2cFslvwP8eLjHmtlNZtZgZg0dHR0piiUiImmkCfSWsM0l7mh2BUGg/6PhHuucu905t8E5t2H+/PkpiiUiImmkGUffBiyNPV4CHCzfycw+CNwBbHTOdQ7nWBERGT9pWvQ7gIvMbIWZVQPXAQ/HdzCzZcADwL92zu0dzrEiIjK+hmzRO+cKZvZ14FEgB9zpnNtjZl8Nn98K3ALMBf6nmQEUwjRM4rHjVBcREUlgziWmzCfVhg0bXENDw2QXQ0Rk2jCzRufchqTndGesiEjGKdCLiGScAr2ISMYp0IuIZJwCvYhIxinQi4hknAK9iEjGKdCLiGRcpgJ9Y2sXW55sprG1a+idRUROE5lZHLyxtYsb76inp+BTnffYtrlOC4WLiJChFn19Syc9BR/fQW/Bp76lc+iDREROA5kJ9HUr51Kd98gZVOU96lbOnewiiYhMCZlJ3axfXsu2zXXUt3RSt3Ku0jYiIqHMBHoIgr0CvIhIqcykbkREJJkCvYhIxinQi4hknAK9iEjGKdCLiGScAr2ISMYp0IuIZJwCvYhIxinQi4hknAK9iEjGKdCLiGScAr2ISMYp0IuIZJwCvYhIxinQi4hknAK9iEjGKdCLiGScAr2ISMYp0IuIZJwCvYhIxinQi4hknAK9iEjGKdCLiGRcqkBvZleZWZOZNZvZzQnPv8/MnjOzU2b2h2XPvWlmu8zsRTNrGKuCi4hIOvmhdjCzHLAF+AzQBuwws4edcy/HdjsK/B7wKxVOc4Vz7sgoyyoiIiOQpkV/CdDsnGtxzvUA9wCb4js459qdczuA3nEoo4iIjEKaQH8esD/2uC3clpYDHjOzRjO7qdJOZnaTmTWYWUNHR8cwTi8iIoNJE+gtYZsbxmtc7pxbB2wEvmZmH0vayTl3u3Nug3Nuw/z584dxehERGUyaQN8GLI09XgIcTPsCzrmD4f/twIMEqSAREZkgaQL9DuAiM1thZtXAdcDDaU5uZrPNrCb6GbgS2D3SwoqIyPANOerGOVcws68DjwI54E7n3B4z+2r4/FYzWwQ0AGcBvpl9A1gNzAMeNLPote5yzv3juNREREQSDRnoAZxzjwCPlG3bGvv5EEFKp9zbwIdGU0ARERkd3RkrIpJxCvQiIhmnQC8iknEK9CIiGadALyKScQr0IiIZp0AvIpJxCvQiIhmnQC8iknEK9CIiGadALyKScQr0IiIZp0AvIpJxCvQiIhmnQC8iknEK9CIiGadALyKScQr0IiIZp0AvIpJxCvQiIhmnQC8iknGZCvSNrV1sebKZxtauyS6KiMiUkZ/sAoyVxtYubryjnp6CT3XeY9vmOtYvr53sYomITLrMtOjrWzrpKfj4DnoLPvUtnZNdJBGRKSEzgb5u5Vyq8x45g6q8R93KuZNdJBGRKSEzqZv1y2vZtrmO+pZO6lbOVdpGRCSUmUAPQbBXgBcRKZWZ1I2IiCRToBcRyTgFehGRjFOgFxHJOAV6EZGMU6AXEck4BXoRkYxToBcRyTgFehGRjEsV6M3sKjNrMrNmM7s54fn3mdlzZnbKzP5wOMeKiMj4GjLQm1kO2AJsBFYD15vZ6rLdjgK/B/zZCI4VEZFxlKZFfwnQ7Jxrcc71APcAm+I7OOfanXM7gN7hHisiIuMrTaA/D9gfe9wWbksj9bFmdpOZNZhZQ0dHR8rTi4jIUNIEekvY5lKeP/WxzrnbnXMbnHMb5s+fn/L0IiIylDSBvg1YGnu8BDiY8vyjOVZERMZAmkC/A7jIzFaYWTVwHfBwyvOP5lgRERkDQy484pwrmNnXgUeBHHCnc26PmX01fH6rmS0CGoCzAN/MvgGsds69nXTsONVFREQSmHNp0+0TZ8OGDa6hoWHYxzW2dmkpQRE5LZlZo3NuQ9JzmVlKsLG1ixvvqKen4FOd99i2uU7BXkSEDE2BUN/SSU/Bx3fQW/Cpb+mc7CKJiEwJmQn0dSvnUp33yBlU5T3qVs6d7CKJiEwJmUndrF9ey7bNdcrRi4iUyUyghyDYK8CLiJTKTOpGRESSKdCLiGScAr2ISMYp0IuIZJwCvYhIxinQi4hknAK9iEjGKdCLiGScAr2ISMYp0IuIZJwCvYhIxinQi4hknAK9iEjGKdCLiGScAr2ISMYp0IuIZJwCvYhIxinQi4hknAK9iEjGKdCLiGScAr2ISMYp0IuIZJwCvYhIxinQi4hknAK9iEjGKdCfhhpbu9jyZDONrV2TXRQRmQD5yS6ATKzG1i5uvKOenoJPdd5j2+Y61i+vnexiicg4Uov+NFPf0klPwcd30FvwqW/pnOwipaYrEZGRUYv+NFO3ci7VeY/egk9V3qNu5dzJLlIquhIRGTkF+tPM+uW1bNtcR31LJ3Ur506bYJl0JTJdyi4y2RToT0Prl9dOuyA5Xa9ERKaCVIHezK4C/hzIAXc4575X9ryFz38OOAF8yTm3M3zuTaAb6AMKzrkNY1Z6OW1M1ysRkalgyEBvZjlgC/AZoA3YYWYPO+deju22Ebgo/Hcp8Ffh/5ErnHNHxqzUclqajlciIlNBmlE3lwDNzrkW51wPcA+wqWyfTcDfukA9cLaZLR7jskrGaBSNyMRIk7o5D9gfe9xGaWu90j7nAW8BDnjMzBxwm3Pu9pEXV0arsbVrSqQ/NIpGZOKkCfSWsM0NY5/LnXMHzWwB8LiZveqce2bAi5jdBNwEsGzZshTFGn9TJSiOlakUXDWKRmTipEndtAFLY4+XAAfT7uOci/5vBx4kSAUN4Jy73Tm3wTm3Yf78+elKP46ioPj9x5q48Y76TKQXptLNUtEompyhUTQi4yxNoN8BXGRmK8ysGrgOeLhsn4eB37RAHXDcOfeWmc02sxoAM5sNXAnsHsPyj5upFBTHylQKrtEomt+/cpXSNiLjbMjUjXOuYGZfBx4lGF55p3Nuj5l9NXx+K/AIwdDKZoLhlb8dHr4QeDAYfUkeuMs5949jXotxkMVx21NtiKJG0YhMDHOuPN0++TZs2OAaGhomuxiZy9GLSHaZWWOl+5R0Z+wg1OIslfaLL74fMOQx+kIVGV8K9Kexu57fx493v8XGtYu54dLBRzqlHbET7Xeq18fzDMPhOyoeU+m8YxX89SUiokB/2rrr+X1868FdADz7WnDT8mDBPu1wyPqWTk71+jigz+9PC1Y6plKn91gMA51Kw0lFJlOm5qPXnZbJkn4vP979Vsk+5Y/LpR2xU7dyLjmv9LYKo/IxdSvnkvcMA3KeUbdybsXgP9z3t/w823e2DThenxk5HWSmRa/WW7JKv5eNaxcXW/IAG9cOPmNF2hE765fXcuumtdzy0G5858h5xurFZ/HFjyyr/H6YAS78P3nE00je3/h5cp5xf2Mbhb7+42FsrhxEprrMBHrdaZks/nvpKfj84Cd7+canLy6madLm6CF95/SqRTX8+keWcqT7FE81tbPrwHGaDu9h1aKaxNRNoS9I9RT6gvJtXLuYa9YtwYBr1i1h/fJavvXgrmJKKO37G/9yemn/MR5/+XDJ8UDxnD29+sxIdmUm0Gdx3PtYiH4vUbD/6WtH2PHmUbZtruOGS5elCvDlBuvgjLe8PTP6fDdocC4v37OvHeHZ145gwIwqj2vWLaGxtYv7G9uKc2pEKZ40otf78ydeG3B806Hu4jYfqJ1VPezfhch0kJlAP9VuBpoqot/LD36yl5++dmRYLeIkSSkU6B9CGb+CgCB145wb8OUb/7KIyhdPJTmCK5Co5V3o84Eg3/9rG5YOq+z1LZ30Fvzi4+j4+pZOPAPfgWfQdaJn2L8PkekgM4Eesj3ufTTDBNcvr+Ubn76YHW8eTXXFM9hrlafIHtjZxvadbcXAf8vVa0qurG65eg1dJ3qKr7flyWa6T/Zyx0/foM93zKgKviy+8emLee71TgqxkTqe9bfc87n+c16zbknquje2dvHi/mMls/C1d5+isbUr9VWghmjKdJepQJ9VY9HRnPaKZ6jXKg+OUcs7CvxdJ3oSX6extYvr/zo4b1yUG//aFRcWO3H7/OBK4NZNa4tj6nFBCqivz6fpUDeQ7kasaEx/3E9ePsyzr3WwbXNdsay1s6qLVw/x86mTX7JAgX4aGKuO5vIrnqSW6lCvVf6F0XSoG88MYumZ+OtEr/HS/mMDgjyAF8u333DpMlYtqkksU29f0Cbvc/Cdh3aTMyj4bkDwjdcpqkv5JB/x9NXXrrgQoPiFEH3BRH0X6uSXLFCgn6LiAWs8OportVQHe63yMm3f2cb9jW34zuF5xi1XrwGC9Ex0XFKLOpIva7VH546Cb6Ru5Vw8C4I8gO87fBjQ31Bep3gaKecZn1i1gKea2unzS/sM4jd5FXzHLQ/tLo4QmshOfqWIZLwo0E9BSUF42+Y6tu9sS1zhJY3y6Q7KW6p/+uNXaO8+xVVrFpWkM6Ic/Npz5/Ddh3fT2+fIeeB5QfCLWsvOOZ5qaufWH+0plvuadUuKAbTclasX8rsfvyAxQCelRywW6fO54Aargu8ws+JomXid3uv1ebKpfUAaKSmYRjd5Rf0DvnPFL4+J6ORvbO3igZ1t3NewP/EqRWS0TvtAPxVbUUnpgrqVc3kg7PTcvrNtWIEgabqDeEsVgxfeDO4M3fpMC0/v7WDpObN4sqm9mDLxCIYgAhR8wC9tpTvgiVeCceq+C3Lvew4cL2mJRzyDDy09u1j+7Tvb+sezx8b6R88/sLONvvAk0aibtefOKebzb/1RMEY/avlH/bmPv3yYK1YtKF4hVHqvy2/yqi5ruY9FJ3+l1473I0S/JqWIZKyd1oF+qna0JaULRpMrTpru4IZLlxVbqn/33JscevtU8flXDnXzStjhGSlPvuS8IC8P/YHcubDl7YLUyq4Dx4Phlb4rBl+PYATNgWMnaWztoulQN/fu2N8/nr1srH/ToW7ueWFf/xj4nHHtuiXUt3TiOzcg377m3Dm81Ha8WM47f/YGXSd6qJ1VXXK1ER8NtH55bcX+gbiRNgoG+5yV9yMMNl2EyEid1oF+LDvaxvLKIEoXPLCz/yah0eSKk6Y7iMpbO6uaZefMKgn0SfIemBmFviC//eVfOp/nWjqZkffYua+LPh88j5LVg30Hfp/DjHAuG/jk+xbyVFM7dz+/LwjwYb49Lgre23e2ce+O/SVXBM5B06FuDhw7ST7n0ddX+vv44keW8VLbruL+ze3v8P3HmvCsPzVzqtcvab1HgTcefGHko2/KPwuDfc5KpmnIefzq+iVcG94NLDJWTutAP1YdbeN1ZRCNT38gTNWMNFdcPt3BqkU1JUMdoyA8Z2Y1x070FFvf+ZzxyVULmFczg7XnzmH3weMc6Q6+EO74aQvlg2j6fHAJGXkXa/Gf7O2jt88NmN0SgquEnFHsLD3SfWrAPr7v+M4Pd+G7oMzXXbKsOK4+6gT+zOqFPP7y4f5jXNCHUCxP+NqDdeZ6NrLRN0mfhcE+Z7rRTybCaR3ox+qPbDyG4CWd82tXXDji88anO7jpbxtKhjqGN7Gyce0iHHCk+xTza2YU55lJyiMnGWqtsqq8x8a1i/n5650DAng0AieePtm+sy3xNaIWfsHvf80v3vZzCn5w5XHrpg/w7Gsd9PT6+AR9AvHpGKKZMsvv2I3/zn3n+A8/3FX83aVtFFR63wb7nGX5Rj+ZGk7rQA9j80c2HkPwxmtYX2NrF0+8cnjAdvOMe17Yh+8o3q0aBflb/2EP71UYIpmWAbdcvYYbLl3Gk03tJS1ugM0fXVH8Ioq/H/e+sG9AZ27cke5TbH369eLVRcGHP3v0Vb502fnUzKyidlZ1SY4+6Y7deBrFM8N30egbSoZalqfTKo3gSXrfFMxlMmnN2DEyHqN3xuOcW55s5vuPNZV0jn569UJ+8srhkm1/8NlV1K2cm3g3a1w4wfCQjKBlfO7ZM6mdVc13frirJIDnPOPvf/cygGLfQdeJHl7af4zHXh74xRSpznssq51Jc8e7A577r1/4ADdcuqykP6I8uEPwe46GrtbMyHP7sy3F34UBf/jZVXztigtL0jL5nAfODXnT1lA3qA3HVBwhJlOH1oydAOPRYhvNOb/3yCv8455DXLVmETd/7v3F7bWzqvEsSFtEd4HuOXickkyKwYv7j/HYnkMDgnzNjBzdp/qKj9M2EzzPuLdhP4W+4HUvv3Aez8Q6iPt8x21Pv85TTe30xIZSVuU9cl6Q/48Vr2Qo4sne/vLE/Xj3W6xaVDNo/0ljaxfX3/5c8TWr8x6f/9C5/PDFg8X6JY3Tj/9eTvUGHcfReZPet9H240zVEWIyPWRqhSkJfO+RV9j6TAtvdp5g6zMtfO+RV2hs7eLbD+7iuw8HY889g0++bwGrFtUMCNa+C8agx4cpRuJBvpKcB+edfQbRQlOewcULzqQQTWPgu5IgH9nz1tvFgAv9o2/WnjuH9y+q4ZzZVbx/UQ252KfWAQeOvVd8rbiNaxdXXK0qsn1nW8lr9hZ8Ot/tKQ4e8uif1TJaDaucA+5vbBt05aqhyjGU0R4vpze16DOmsbWLexr2l2z74YsH+N/PvVnSmdoXBvOn9nbw8YvnD2g1D8f8M6vpeKd/il/fh4PH3gPC1reDvYe7Kxzdb2ZVbsA2ByVfOMdP9CZeRfiutKV/3tlnsGpRDdA/86V5xkv7j/GtB3dxbThS5/7G0g7fqMM4aabP9ctr+cSqBYmppGgmz0p3+o62z0XrLchoKNBnSKXZGpedM4v21q7Eyb16Cv6AjtHhiEawlJ+3nD9EjiefMz79vgU0t78z6H59DnIJrfecF7xw1Dg/cOw9fv225/jKR1cUZ74s9LlikL6/YT+/tmFpyTz3Fyw4k0tWnMOqRTWJU040tnbxVFN7YrkccF/Dfq4Jb+Ya7siboWgYpoyGAv00VD5vTdRJd/DYyQGzNeY841c+vIRfHDhevCnngnmzB9z5OlLRak1RTruSoXL5X9ywlJqZVaWt8tqZHOg6OWDfixfW8GpsdSiAixfUDKhTn++47ZmWaCnaEtFY/qi1n88Z+zrfpaXjHR7Y2cYtV6/h/ob99PY57mvYz903XRYsezjIN1bBd8WlEMdj5I1G7shIKdBPM+Xz1jz4z2281HacQp+PZ8Hdq+Zity05VzJHfO2sam55aPeYlWfzR1dQM7NqVOfIexRveppR1R8g1yw+a0Cgz3kMCPKeUfGLywHmSufqAajKGWvPncP9YZrLD8fYR63we3fsK+bue/oc23e2ce26JSXLHgbTORiYUegrXaoxafimyGRRoJ9myuet2fFmfwdgfPk+w+FckHOOFtWI5szxy4bURg3eoVrd5cES4G9+9gafWLWAqpwVJ0AbrvPnnVn8Ob4oOMBTezuKLe4PLz2bHQkpqMVzzuBA2CeQZOWCM/nCh8+jdlY1ew4exwHXrlvC9p1txZa9c8HIICO4iWpGvnScwpHuUyXpk/j4/D0Hj/N8SyfNHe8WO5C7TvQMmG55KtAQzdOTAv0YGmrR7LH4AyuftyZJn++4cvVCPrT07MTJvKrzXskNUGnDc1JfbW+f4/GXD5PzwPrnORuW5vZ3uO7254pTD0dTHK9fXsvdXwly5c2Hu4szbJY77+yZJYF+0VkzSubu+fLlK0oWQY/Gzd/X0D+ZmufBrZvWFlvh23e2lbzevJoZxZ8PHjvJgWMnWXvunOLvNp7RyeWmZmephmievhTox8hgf0RDLagd/3moP7woYN35szdoCTsuLWEq4CdePcz8mhkcCPP2UUpi98HjXLNuCS+8cXTIjs/hGO6InXNmV3H03d7i4/jVQPm49Psb2wa9aeuNI6U3Sy086wyWnjOLnoLPFz8SzEr57Qd34aAYnMunc3BY8Q7YSJSjrwpnzCxfDjFnFNM9cZ+4eP6UDKBaLev0pUA/Rgb7Iyp/bvvOtuLc8nmvP8db6Q7L7pO97Hnr7WLn66pFNew7egKfoDP08gvmDhiX3ufDtuf3lWwzC4Jmoc8P0xTpW/MjMavK40SFqROOn+xN3A7949KvXbeE255+fdAgDxSHdkb1iYZj5j14qqmd7zy0q/hFFAXnASOQYouNRH51w9JiGmn98lq+/eCukrL0uWCOHudKp3KLWv+TmSYZzvQMWaZUVUCBfowM9kdU/pwRW1C7Lwg7jqAlWz4WO97yjFI2ew4eLwacSjcfJSn4YH5wPn+E+fThqBTkYegrgELB57anXx90+oM4A5bPncWbnSf6z+Ez4PgoOBvB9MnBBGbB8dEdsOVXYNeErfn7yu5PqM4Z3/18cGfxvTv20ef3d/J+68Fd/V+qZTNhjod4QAMSry5PtyGaSlX1U6AfI4P9EUXPReOy15w7h5xnxbnaIchtJ43FLg/Hf/HEXj6w5OwRlzOavXHqzXBUyofEydcqyeWMmz52Af8xXO6w4n4WjBR6Lvz9vhreyBUsOr6L3QePl3wR9/QGK14tPWdWcWilAR9cModbfnlN8X2O3rOoTyT+Be07x3ce2s3ug8eHnGs+WlYw6jBOE5jijYKcZ3zyfQtGnKIZal6g6USpqn4K9GMoajVFt7/H/0iilZT6fFcSaMvzuz19jt+7559Zs/iskmXxIofePkX7MAJgkgsWnElL+zuJnatTyXAuOnzf8V/+354hR/788ofOTZxLH4KrjLue30d1zsjnPAqFYJrjnzUfCUcyBUHes6AfIC5677c82Zz4Bd3nO+5+fl9xbYGkzvqtT7/OE7HJ5f6+YT/33nTZkMGpfHHzJ15tJ+/ZgEXQh2rhll9Fesa0bgmPNFWVxXSPAv0oJH0gKnW8fidc3xSGbk0f6DrJga6TifO3wNB3mQ5l5bzZfPnyFQNmkJzOfAcnegb/6jIIb3oa/FyFPsd1ly5lz4Hj/KLteHGlrEifC1JCT+3t4O6v9E/nHPWnxN+f+Jd1NPSyvGVZPrFavBzxVF6l4FO+uLlzjl/7SDBTaHz/oVq45VeRE90SThNghxOER5Kqymq6R4F+hCp9IMr/mB7Y2ca+oycGLLSRxmgDeiXPvtbBrOocX7xkGU/v7Ui8+zSLHAy5ZCIEaaN/evkw7e+cGvRLOT652PV/XU9vIejkjvvAeXNYeNYZPNXUXmxh186qZsuTzcX0yIFjJyteibR3nyrJ9ycFn/XLa9n80RXc/mwLzlEyPDVuqBZu9Hx8wZak/cZrSu6hAmx5iipNv8dw7ybOarpHgX4Y4h/wpIAe5Tbja4De17B/QEstLmfwqfcv5IlXD494UrHhOtnrF6cs0PSlyQ51D/2F4Hnw0v5j3PV8a0nneNxLbcepznfz3c+vHbBIedQJHE3FXH6lkffg6fCGseisPQWfW/9hDwvPOqPY3wLB6CLnglFYt1y9JjFI1rd0DnrHbrwFHB/plWbt3NEG/zQBtjxFFV8UZqxkdWSSAn1K5R/wq9YsAsJJvXJeyVzrv/zBxbxx5F3ePVWg5cjABTHiohkRIZimt+Pt9wb9YhhrUz1PP5X1JYzqSdJT8Nlz8Dh//IUPFHP45emcz6xeSNeJHhpau4K7dA3WLasNHsfO5bto+OjAKaQhSNtE0yrHO1bLb5qLL4CeFKSjz/qON48Wg2ljaxc/+MneAUOFbwv7FhwDc/ppvwDSBNjyFJXvXLGBNVZXF1kdmZRqhSkzuwr4cyAH3OGc+17Z8xY+/zngBPAl59zONMcmGekKU+WTfY2l+MpM5aNWlp8zi9ajJyodKkLes6DV3ufGtV8k78G9v/tLQH+wNsIF0sN9on4DM/iXF84rruEbpUO6TvQUP+uewR9cGa42FutH8CyoU58rvYqJ9i9fkWuoIabxVb7iaafyL4q7nt/HLQ/txncucZUvSH/z4WQYz47eUa0wZWY5YAvwGaAN2GFmDzvnXo7tthG4KPx3KfBXwKUpjx0T5ZN97et8t2RlpZGc794d+5iR92jvPlUyPrv871RBXoZS8N2QncBj8zrw+J5D1MysGjA1Q6R4NeEouQcjSods/uiK4j6+C+4vKF+gJep7KL+i8cwqLrZeKdWSdN9C0vZtm+uKNwzWt3Ry4NjJ4jrH5TciTsWO1DSjnsbrSyBNivYSoNk51+Kc6wHuATaV7bMJ+FsXqAfONrPFKY8dE3/ySOl3x9ZnWkpW/BmO6EvjpbbjvPBmV0mQF5nqbnumpdhXVGHgVkW+79jz1tsDVtgqP8/a8+aUzP8DwZXurZvWDlhsPX7upJWxKq2eVWn7+uW1fO2KC4uziebCTuOSGxGn4Cpcg60SFn0JfP+xJm68o37EsauSNIH+PCB+S2BbuC3NPmmOBcDMbjKzBjNr6OjoSFGsUu8mLHE30je6fIZIkenEQXFq6usvXUZ13isO1R0s8BtQXRWssDWjKgig1VVBvvyaMKga/aN6rl23hOpccH9BzuCPw8XYI+uX13LrprXkPcOj/1zlovx8FLCjfSptj59/2+Y6fv/KVWzbXFcsY6X9J9tg9RnvpSLTdMYmfTbKLwgr7ZPm2GCjc7cDt0OQo09RrhIfXDKHF8vWOB3pG51mhkiR0Ygvsp7zjBVzZ1E7u5r2t08lpgLfv6iGve3d/XP2eLB+WS0Hjp3k3VMFjp0sFPetzlnx8n/98lqujd21G438eaqpncNvv8dlK+dSM7NqwJ2wUXoknka4+ysDOymjBVkqpRviqZZK+1TqAE3TMVo+fHIqd6QOVp/xHu0zZGesmV0GfNc599nw8TcBnHN/EtvnNuAp59zd4eMm4BPA+UMdm2SknbG/8pc/ZdeB48w/cwZbfmP9qN7o8hz9vqMnilPwZuQeo8wxgiGPvt//Hp1ZnWNezQz2Hz1BLrxb1HdBMPQ8j5lVHr2+I2fG7DPynDUjT3XeY8W82exo7eJkT4GPXTSfA8dO8nr7O5w1s4o5M6tYMW82bxx5l+Mne3n7ZC+L5pzBebWzii2b/UdP0NZ1gpnVOebOnkGv7zhnVhUXLqwpTm1QKSfb2NrFbU+/TsuRd1kxbzZf/fgFxf0rTY8wkqkTZGoZbY5+sM7YNIE+D+wFPgUcAHYANzjn9sT2+VfA1wlG3VwK/IVz7pI0xyYZaaAXETldjWrUjXOuYGZfBx4lGCJ5p3Nuj5l9NXx+K/AIQZBvJhhe+duDHTsGdRIRkZRSjaOfaGrRi4gMz2Atet0BLyKScQr0IiIZp0AvIpJxCvQiIhk3JTtjzawDaB3h4fOALNztpHpMLVmpB2SnLqpHqeXOuflJT0zJQD8aZtZQqed5OlE9ppas1AOyUxfVIz2lbkREMk6BXkQk47IY6G+f7AKMEdVjaslKPSA7dVE9Uspcjl5EREplsUUvIiIxCvQiIhmXmUBvZleZWZOZNZvZzZNdnnJmttTMnjSzV8xsj5n923D7OWb2uJm9Fv5fGzvmm2F9mszss7Ht681sV/jcX4SLs090fXJm9s9m9qPpWg8zO9vM7jezV8P35bJpWo9/F36mdpvZ3WZ2xnSph5ndaWbtZrY7tm3Mym5mM8zs3nD782Z2/gTW47+Hn61fmNmDZnb2pNXDOTft/xFMgfw6sBKoBl4CVk92ucrKuBhYF/5cQzBP/2rgvwE3h9tvBv40/Hl1WI8ZwIqwfrnwuReAywjW2vgxsHES6vP7wF3Aj8LH064ewP8BNoc/VwNnT7d6ECzN+QYwM3z898CXpks9gI8B64DdsW1jVnbg3wBbw5+vA+6dwHpcCeTDn/90MusxYX9U4/xhuQx4NPb4m8A3J7tcQ5T5IeAzQBOwONy2GGhKqgPBnP6Xhfu8Gtt+PXDbBJd9CfAE8En6A/20qgdwFkGAtLLt060e0brM5xCsL/GjMMBMm3oQrEQXD5BjVvZon/DnPMEdqDYR9Sh77gvAtsmqR1ZSN6kXIZ8KwsuuDwPPAwudc28BhP8vCHcbbMH1toTtE+kHwL8H/Ni26VaPlUAH8L/CFNQdZjabaVYP59wB4M+AfcBbwHHn3GNMs3qUGcuyF49xzhWA48BkrBr+ZYIWekmZQuNej6wE+tSLkE82MzsT2A58wzn39mC7Jmwb1oLr48HMrgbanXONaQ9J2Dbp9SBoFa0D/so592HgXYI0QSVTsh5h/noTQQrgXGC2mf3GYIckbJv0eqQ0krJPer3M7NtAAdgWbUrYbVzrkZVA3wYsjT1eAhycpLJUZGZVBEF+m3PugXDzYTNbHD6/GGgPt1eqU1v4c/n2iXI58HkzexO4B/ikmf1fpl892oA259zz4eP7CQL/dKvHp4E3nHMdzrle4AHgl5h+9Ygby7IXj7FgDes5wNFxK3kZM/st4GrgRhfmXZiEemQl0O8ALjKzFWZWTdBZ8fAkl6lE2Hv+N8Arzrn/EXvqYeC3wp9/iyB3H22/LuxtXwFcBLwQXsp2m1ldeM7fjB0z7pxz33TOLXHOnU/we/4n59xvTMN6HAL2m9mqcNOngJenWz0IUjZ1ZjYrfP1PAa9Mw3rEjWXZ4+f6VYLP64S06M3sKuCPgM87507Enpr4ekxEZ8tE/CNYnHwvQQ/2tye7PAnl+yjBpdYvgBfDf58jyLM9AbwW/n9O7Jhvh/VpIjYCAtgA7A6f+0vGqXMpRZ0+QX9n7LSrB/AvgIbwPfkhUDtN6/GfgFfDMvwdwWiOaVEP4G6CvoVeglbr74xl2YEzgPuAZoIRLSsnsB7NBHn16O9962TVQ1MgiIhkXFZSNyIiUoECvYhIxinQi4hknAK9iEjGKdCLiGScAr2ISMYp0IuIZNz/B38eh8yWX777AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#What is our distribution of tract populations by area?\n",
    "print(\"this is population by Census tract for \"+STATE)  \n",
    "plt.plot(tractPop, tractArea, marker='.',linestyle=\"none\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "f159bf55-a25e-45c0-b7ea-4c21fbce9bb0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'shapely.geometry.polygon.Polygon'> <class 'shapely.geometry.polygon.Polygon'>\n"
     ]
    }
   ],
   "source": [
    "print( type(tractGeom[0]),type(tractGeom[1]) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "5e8f8f92-a336-43e5-8ac5-20c657cb5857",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "looking for nonPolygons in census tract data\n",
      "892 4625 0.00570439517799993 nonPolygon tract no, pop, area\n",
      "1877 4389 0.0006030292975000102 nonPolygon tract no, pop, area\n",
      "2762 1586 0.002926075715499933 nonPolygon tract no, pop, area\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"looking for nonPolygons in census tract data\")\n",
    "notPoly = [0]*nTracts\n",
    "for m in range(nTracts):\n",
    "    if type(tractGeom[m]) != type(tractGeom[1]):  #assuming tract 1 is a single polygon\n",
    "        notPoly[m] = 1\n",
    "        print(m,tractPop[m], tractArea[m], \"nonPolygon tract no, pop, area\")\n",
    "        x = tractGeom[m].centroid.x\n",
    "        y = tractGeom[m].centroid.y\n",
    "        if y < 999 :  #let's zoom in on these\n",
    "            for geom in tractGeom[m].geoms :\n",
    "                xg,yg = geom.exterior.xy\n",
    "                plt.plot(xg,yg)\n",
    "            plt.text(x+0.0,y+0.01,m,fontsize=9)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "d63968a2-afc1-4913-863c-4c415fb9c0b8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#convex-hull these right away  (decision for each state.  For OH, YES!)\n",
    "for m in range(nTracts):\n",
    "    if notPoly[m] == 1:\n",
    "        for geom in tractGeom[m].geoms :\n",
    "            xg,yg = geom.exterior.xy\n",
    "            plt.plot(xg,yg)\n",
    "        tractGeom[m] = tractGeom[m].convex_hull\n",
    "        x,y = tractGeom[m].exterior.xy\n",
    "        plt.plot(x,y)\n",
    "        notPoly[m] = 0\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "72abde7f-085d-4c0a-abe3-29e8d6203b40",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>STATEFP20</th>\n",
       "      <th>COUNTYFP20</th>\n",
       "      <th>VTDST20</th>\n",
       "      <th>PRECINCT20</th>\n",
       "      <th>GEOID20</th>\n",
       "      <th>NAME20</th>\n",
       "      <th>G20PRERTRU</th>\n",
       "      <th>G20PREDBID</th>\n",
       "      <th>G20PRELJOR</th>\n",
       "      <th>G20PREGHAW</th>\n",
       "      <th>geometry</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>39</td>\n",
       "      <td>009</td>\n",
       "      <td>005ACR</td>\n",
       "      <td>ACR</td>\n",
       "      <td>39009005ACR</td>\n",
       "      <td>ATHENS 2-5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>POLYGON ((-82.09632 39.32211, -82.09627 39.322...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>39</td>\n",
       "      <td>159</td>\n",
       "      <td>080ABZ</td>\n",
       "      <td>ABZ</td>\n",
       "      <td>39159080ABZ</td>\n",
       "      <td>MARYSVILLE 2</td>\n",
       "      <td>356</td>\n",
       "      <td>204</td>\n",
       "      <td>14</td>\n",
       "      <td>0</td>\n",
       "      <td>POLYGON ((-83.36722 40.25455, -83.36717 40.254...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>39</td>\n",
       "      <td>159</td>\n",
       "      <td>080ACC</td>\n",
       "      <td>ACC</td>\n",
       "      <td>39159080ACC</td>\n",
       "      <td>JEROME 6</td>\n",
       "      <td>414</td>\n",
       "      <td>341</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>POLYGON ((-83.23164 40.16109, -83.23154 40.161...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>39</td>\n",
       "      <td>159</td>\n",
       "      <td>080ACA</td>\n",
       "      <td>ACA</td>\n",
       "      <td>39159080ACA</td>\n",
       "      <td>MARYSVILLE 4</td>\n",
       "      <td>395</td>\n",
       "      <td>231</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>POLYGON ((-83.38459 40.21995, -83.38390 40.220...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>39</td>\n",
       "      <td>159</td>\n",
       "      <td>080ACB</td>\n",
       "      <td>ACB</td>\n",
       "      <td>39159080ACB</td>\n",
       "      <td>MARYSVILLE 15</td>\n",
       "      <td>444</td>\n",
       "      <td>283</td>\n",
       "      <td>10</td>\n",
       "      <td>1</td>\n",
       "      <td>POLYGON ((-83.39649 40.26222, -83.39638 40.262...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  STATEFP20 COUNTYFP20 VTDST20 PRECINCT20      GEOID20         NAME20  \\\n",
       "0        39        009  005ACR        ACR  39009005ACR     ATHENS 2-5   \n",
       "1        39        159  080ABZ        ABZ  39159080ABZ   MARYSVILLE 2   \n",
       "2        39        159  080ACC        ACC  39159080ACC       JEROME 6   \n",
       "3        39        159  080ACA        ACA  39159080ACA   MARYSVILLE 4   \n",
       "4        39        159  080ACB        ACB  39159080ACB  MARYSVILLE 15   \n",
       "\n",
       "   G20PRERTRU  G20PREDBID  G20PRELJOR  G20PREGHAW  \\\n",
       "0           6           7           0           0   \n",
       "1         356         204          14           0   \n",
       "2         414         341           6           1   \n",
       "3         395         231           4           3   \n",
       "4         444         283          10           1   \n",
       "\n",
       "                                            geometry  \n",
       "0  POLYGON ((-82.09632 39.32211, -82.09627 39.322...  \n",
       "1  POLYGON ((-83.36722 40.25455, -83.36717 40.254...  \n",
       "2  POLYGON ((-83.23164 40.16109, -83.23154 40.161...  \n",
       "3  POLYGON ((-83.38459 40.21995, -83.38390 40.220...  \n",
       "4  POLYGON ((-83.39649 40.26222, -83.39638 40.262...  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now, let's read in the voting data  \n",
    "VTDdbf = gpd.read_file(\"state_map_files/oh_vest_20.dbf\")\n",
    "VTDdbf.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "3fe4ceba-8077-4485-ad0a-f8f2a5755040",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "8941 0.5407669764770272 5833999 = number of precincts, statewide GOP vote, total Trump+Biden votes\n"
     ]
    }
   ],
   "source": [
    "# Pull VTD geopandas data columns into arrays\n",
    "vtdGeom = VTDdbf['geometry'] \n",
    "# vtdGeom = VTDdbf['geometry'] #can't use VTDdbf because it uses alternate coordinate system\n",
    "vtdTrump = VTDdbf['G20PRERTRU']\n",
    "vtdBiden = VTDdbf['G20PREDBID']\n",
    "\n",
    "nPrecincts = len(vtdGeom)\n",
    "stateGOP = np.sum(vtdTrump)/(np.sum(vtdTrump) + np.sum(vtdBiden) ) \n",
    "print(nPrecincts, stateGOP, np.sum(vtdTrump) + np.sum(vtdBiden),\n",
    "      \"= number of precincts, statewide GOP vote, total Trump+Biden votes\" )\n",
    "vtdTrump = vtdTrump.to_numpy()  #these two lines try to avoid pandas complaints when we overwrite precinct data\n",
    "vtdBiden = vtdBiden.to_numpy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "c5c57f52-b8d2-4ef4-9d02-2429ed5e59da",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#see NJ code for convex-hulling tracts\n",
    "#ID the non-polygon PRECINCTS\n",
    "notPolyVTD = [0]*nPrecincts\n",
    "for p in range(nPrecincts):\n",
    "    if type(vtdGeom[p]) != type(vtdGeom[0]):\n",
    "        notPolyVTD[p] = 1\n",
    "        for geom in vtdGeom[p].geoms:    \n",
    "            xs, ys = geom.exterior.xy\n",
    "            plt.plot(xs,ys)\n",
    "        #plt.text(vtdGeom[p].centroid.x, vtdGeom[p].centroid.y,p)\n",
    "    else:\n",
    "        hi = \"hi\"\n",
    "        #x,y = vtdGeom[p].exterior.xy\n",
    "        #plt.plot(x,y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "ea498c6a-d054-409e-92fb-cda921e2911f",
   "metadata": {},
   "outputs": [],
   "source": [
    "#prep for geography triage\n",
    "isSkippedTract = [0]*nTracts\n",
    "isSkippedPrecinct = [0]*nPrecincts  #will be used later"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "5520a7c2-0560-421c-b5ef-bfd8aa9752b3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[96, 124, 307, 885, 886, 998, 1334, 1337, 1431, 1613, 2862]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# For potential later issues, identify and flag lakeshore low-population tracts.\n",
    "lakeTracts = [-99999]\n",
    "minTractPop = 20\n",
    "for m in range(nTracts):\n",
    "    if tractPop[m] < minTractPop:\n",
    "        x = tractGeom[m].centroid.x\n",
    "        y = tractGeom[m].centroid.y\n",
    "        x2,y2 = tractGeom[m].exterior.xy  #turn these two on to show state map\n",
    "        if y < 999 and x > -999 : #optional to exclude some areas from plotting\n",
    "            plt.plot(x2,y2,c=\"purple\")\n",
    "            plt.text(x, y,m, fontsize=9)\n",
    "        #plt.scatter(x,y)\n",
    "        if y > 41.:  #for Ohio, only worried about Lake Erie tracts\n",
    "            if lakeTracts == [-99999]:\n",
    "                lakeTracts = [m]\n",
    "                isSkippedTract[m] = 1\n",
    "            else:\n",
    "                if y > 9999:  #m==99940 or m==999909: \n",
    "                    thisTract = \"interior\"\n",
    "                else:\n",
    "                    lakeTracts.append(m)\n",
    "                    isSkippedTract[m] = 1\n",
    "\n",
    "print(lakeTracts)  # assigned as skipped tracts as well\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "0285a6d6-62f5-417b-b093-09fe3f67fc01",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Let's skip only TRUE Lakeshore tracts - will exclude from map building\n",
    "isSkippedTract = [0]*nTracts   #start over -- don't skip the interior sparse tracts\n",
    "skips = [1431,1334,1337,307,1613,998]\n",
    "for s in range(len(skips)) :\n",
    "    isSkippedTract[skips[s]] = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "dca817fc-8a1a-4037-bb00-3f0e2e871491",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "looking for tracts with zero area\n"
     ]
    }
   ],
   "source": [
    "# For potential later issues, identify and visualize zero-Area tracts.  See Ohio code for more code\n",
    "print(\"looking for tracts with zero area\")\n",
    "for m in range(nTracts):\n",
    "    if(tractArea[m] == 0):       \n",
    "        x = tractGeom[m].centroid.x\n",
    "        y = tractGeom[m].centroid.y\n",
    "        print( m,tractPop[m],\"(\",x,\",\",y,\")\" )\n",
    "        x2,y2 = tractGeom[m].exterior.xy\n",
    "        plt.plot(x2,y2,c=\"purple\")\n",
    "        #print(tractGeom[m])\n",
    "        plt.scatter(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "3ded1b1f-5629-4d8f-826b-e037e5dcb3da",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "working on tract 200\n",
      "working on tract 400\n",
      "working on tract 600\n",
      "working on tract 800\n",
      "working on tract 1000\n",
      "working on tract 1200\n",
      "working on tract 1400\n",
      "working on tract 1600\n",
      "working on tract 1800\n",
      "working on tract 2000\n",
      "working on tract 2200\n",
      "working on tract 2400\n",
      "working on tract 2600\n",
      "working on tract 2800\n",
      "working on tract 3000\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#build basic OH map\n",
    "tractMAP = tractGeom[0] #uncomment for first time thru loop  **************\n",
    "for t in range(1,nTracts):\n",
    "    if t%200 == 0:\n",
    "        print(\"working on tract\",t)\n",
    "    if isSkippedTract[t] == 0:\n",
    "        uncomment = \"if-redone\"\n",
    "        tractMAP = tractMAP.union(tractGeom[t])  #uncomment to build map  ********\n",
    "x,y = tractMAP.exterior.xy\n",
    "plt.plot(x,y)\n",
    "pt1 = Point(-82.1,35.9)\n",
    "pt2 = Point(-81.5,35.9)\n",
    "pt3 = Point(-81.5,36.8)\n",
    "pt4 = Point(-83.0,36.8)\n",
    "clipPoly = Polygon([pt1,pt2,pt3,pt4])  #LEFTOVER FROM INDIANA. plan to clip off SW corner near Evansville\n",
    "xc,yc = clipPoly.exterior.xy\n",
    "#plt.plot(xc,yc)\n",
    "\n",
    "plt.show()\n",
    "wholeMAP = tractMAP  #in case we later slice parts out\n",
    "            "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "f33de347-5473-4b11-b3ae-86691b33098d",
   "metadata": {},
   "outputs": [],
   "source": [
    "#find all tracts and precincts centered in this clipPoly, flag for cutting\n",
    "# NOT USED FOR CO or OH - convex state.  If needed, COPY from another state\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "84c2cf09-b3ea-4fc2-a55b-62985882836b",
   "metadata": {},
   "outputs": [],
   "source": [
    "#rebuild tractMAP, excluding skipped / sliced tracts.  #NOT NEEDED FOR OHIO -- NO SLICED populous TRACTS\n",
    "counter = -1 #Watchout - low-number tracts may have been skipped\n",
    "found = \"no\"\n",
    "while found == \"no\":\n",
    "    counter +=1\n",
    "    if isSkippedTract[counter]==0:\n",
    "        starter = counter\n",
    "        found = \"yes\"\n",
    "\n",
    "tractMAP = tractGeom[starter]\n",
    "for t in range(starter+1,nTracts):\n",
    "    if t%50 == 0:\n",
    "        print(\"working on tract\",t)\n",
    "    if isSkippedTract[t] == 0:\n",
    "        tractMAP = tractMAP.union(tractGeom[t])\n",
    "\n",
    "if type(tractMAP) != type(tractGeom[1]):\n",
    "    for geom in tractMAP.geoms:\n",
    "        x,y = geom.exterior.xy\n",
    "        plt.plot(x,y)\n",
    "else:\n",
    "    x,y = tractMAP.exterior.xy\n",
    "    plt.plot(x,y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "4502cc9a-bf35-4f33-aa4c-4552e08980ed",
   "metadata": {},
   "outputs": [],
   "source": [
    "#for TN, let's convex_hull due to irregular river boundaries\n",
    "#tractMAP2 = tractMAP.convex_hull\n",
    "#x2,y2 = tractMAP2.exterior.xy\n",
    "#plt.plot(x2,y2)\n",
    "#plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "650cf37d-e11a-4ed3-861b-3f3edc411422",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#What is our distribution of precinct's Trump votes by precinct Biden votes?\n",
    "fig, ax = plt.subplots()\n",
    "ax.set(xlabel=\"Biden votes in this precinct\", ylabel=\"Trump precinct votes\")\n",
    "plt.plot(vtdBiden, vtdTrump, marker='.',linestyle=\"none\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "d40408f3-31eb-4b8a-ad91-4e2eb5f422df",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 0.46153846153846156 13\n",
      "100 0.7811579980372915 1019\n",
      "200 0.4866581956797967 787\n",
      "300 0.24539877300613497 163\n",
      "400 0.8549540347293156 979\n",
      "500 0.7272727272727273 462\n",
      "600 0.4948453608247423 873\n",
      "700 0.5201612903225806 248\n",
      "800 0.7922705314009661 828\n",
      "900 0.6556701030927835 485\n",
      "1000 0.05847953216374269 513\n",
      "1100 0.4766990291262136 1030\n",
      "1200 0.21052631578947367 418\n",
      "1300 0.7208121827411168 985\n",
      "1400 0.33419689119170987 386\n",
      "1500 0.22015503875968992 645\n",
      "1600 0.5294695481335953 1018\n",
      "1700 0.36397984886649876 794\n",
      "1800 0.636734693877551 735\n",
      "1900 0.5689828801611279 993\n",
      "2000 0.7350199733688415 751\n",
      "2100 0.5049180327868853 610\n",
      "2200 0.8631284916201117 716\n",
      "2300 0.7083333333333334 144\n",
      "2400 0.5334900117508813 851\n",
      "2500 0.7065217391304348 368\n",
      "2600 0.6688963210702341 299\n",
      "2700 0.8282374100719424 1112\n",
      "2800 0.7120141342756183 566\n",
      "2900 0.48854961832061067 524\n",
      "3000 0.3931888544891641 646\n",
      "3100 0.36129032258064514 620\n",
      "3200 0.5705645161290323 992\n",
      "3300 0.1597222222222222 576\n",
      "3400 0.7357630979498861 439\n",
      "3500 0.6796657381615598 359\n",
      "3600 0.5733333333333334 450\n",
      "3700 0.37551020408163266 735\n",
      "3800 0.22569444444444445 288\n",
      "3900 0.20665083135391923 842\n",
      "4000 0.03937007874015748 254\n",
      "4100 0.562 1000\n",
      "4200 0.5447916666666667 960\n",
      "4300 0.34776119402985073 670\n",
      "4400 0.6369485294117647 1088\n",
      "4500 0.5215782983970407 811\n",
      "4600 0.6427350427350428 585\n",
      "4700 0.6221374045801527 524\n",
      "4800 0.5081967213114754 793\n",
      "4900 0.13636363636363635 924\n",
      "5000 0.5202369200394866 1013\n",
      "5100 0.41761363636363635 704\n",
      "5200 0.5534924845269673 1131\n",
      "5300 0.546137339055794 932\n",
      "5400 0.4789473684210526 380\n",
      "5500 0.6520833333333333 480\n",
      "5600 0.6106612685560054 1482\n",
      "5700 0.8207885304659498 558\n",
      "5800 0.7358490566037735 795\n",
      "5900 0.7851239669421488 484\n",
      "6000 0.20052770448548812 379\n",
      "6100 0.5792079207920792 808\n",
      "6200 0.3378995433789954 657\n",
      "6300 0.6660808435852372 569\n",
      "6400 0.6738609112709832 417\n",
      "6500 0.43388429752066116 242\n",
      "6600 0.32398316970546986 713\n",
      "6700 0.09850374064837905 802\n",
      "6800 0.36101973684210525 1216\n",
      "6900 0.24847746650426308 821\n",
      "7000 0.3160250671441361 1117\n",
      "7100 0.56998556998557 693\n",
      "7200 0.35327868852459016 1220\n",
      "7300 0.07201309328968904 611\n",
      "7400 0.6833333333333333 420\n",
      "7500 0.8390977443609022 665\n",
      "7600 0.41793313069908816 658\n",
      "7700 0.7583815028901734 865\n",
      "7800 0.17824074074074073 432\n",
      "7900 0.7426636568848759 443\n",
      "8000 0.7367303609341825 471\n",
      "8100 0.7268656716417911 670\n",
      "8200 0.7226277372262774 548\n",
      "8300 0.5916870415647921 409\n",
      "8400 0.33170731707317075 205\n",
      "8500 0.6123693379790941 1148\n",
      "8600 0.6854545454545454 550\n",
      "8700 0.65807962529274 854\n",
      "8800 0.6643109540636042 566\n",
      "8900 0.7151515151515152 495\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#ALL TRIMS COMPLETE. let's convert the partisan data to the format we use for HD code\n",
    "# in this prototype, we only use 2020 presidential data, but this could be modified\n",
    "vtdGOP = [0.]*nPrecincts  #Each precinct's R/(R+D)\n",
    "vtdPop = [0.]*nPrecincts   #THIS IS VOTER POPULATION\n",
    "vtdArea = [0.]*nPrecincts\n",
    "vtdCPx = [0.]*nPrecincts   #these are centroid x and y of each precinct\n",
    "vtdCPy = [0.]*nPrecincts\n",
    "plotcolor = ['blue']*nPrecincts\n",
    "for p in range(nPrecincts):\n",
    "    vtdPop[p] = vtdTrump[p] + vtdBiden[p] \n",
    "    vtdGOP[p] = vtdTrump[p]/max((vtdTrump[p] + vtdBiden[p]), 0.01)  #avoid divide by zero\n",
    "    if (vtdGOP[p] > 0.40) :\n",
    "        plotcolor[p]='purple'\n",
    "        if (vtdGOP[p] > 0.60) :\n",
    "            plotcolor[p] = 'red'\n",
    "    vtdArea[p] = vtdGeom[p].area\n",
    "    vtdCPx[p] = vtdGeom[p].centroid.x  #not needed except for graphing\n",
    "    vtdCPy[p] = vtdGeom[p].centroid.y   #not needed  \"  \"  \"\n",
    "    if isSkippedPrecinct[p] == 0 and p%10 == 0: #memory drain if we print all\n",
    "        plt.scatter(vtdCPx[p], vtdCPy[p], marker='.',c=plotcolor[p])\n",
    "for p in range (nPrecincts):\n",
    "    if p%100 == 0:\n",
    "        print(p,vtdGOP[p],vtdPop[p])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "a1e3f0d2-c21c-46d4-8227-e75dfd5e89b6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "original and buffered map areas are 11.467015494340503 11.483527621923406\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "MAP = tractMAP  #committing to the trimmed map (for TN, using convex hull)\n",
    "bufferDistance = 0.001  #do minor buffer for OH\n",
    "origMAP = tractMAP    # let's keep a copy of the original map prior to buffering\n",
    "MAPbuffer = MAP.exterior.buffer(bufferDistance, single_sided=True)  #gives a little exterior buffer\n",
    "# MAP = origMAP.convex_hull  #alternate to buffer for weird state shapes\n",
    "bBox = MAP.bounds\n",
    "MAPMinX = bBox[0]  #these four are useful for slicing ops, and are basis for map grid (without buffer)\n",
    "MAPMinY = bBox[1]\n",
    "MAPMaxX = bBox[2]\n",
    "MAPMaxY = bBox[3]\n",
    "\n",
    "MAP = MAP.union(MAPbuffer)  #not buffering for TN\n",
    "print(\"original and buffered map areas are\",origMAP.area,MAP.area)  #same if we didn't buffer\n",
    "x2, y2 = MAP.exterior.xy\n",
    "plt.plot(x2,y2,c=\"green\")\n",
    "x2, y2 = origMAP.exterior.xy\n",
    "#plt.plot(x2,y2,c=\"blue\")\n",
    "plt.show()\n",
    "\n",
    "minTractPop = 10  #was zero to not exclude empty interiors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "8e271f55-e118-4575-bc99-c28c59f435b7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2020 population, Trump+Biden voters, lean =  11799448 5833999 0.5407669764770272\n",
      "compare to Census 11799448 Leip has Trump + Biden = 5833999.0 0.5407669764770272\n"
     ]
    }
   ],
   "source": [
    "#let's confirm some population stats - these match 2020 census, USelectionatlas.org :-)\n",
    "censusPop = 11799448\n",
    "atlasTrump = 3154834.\n",
    "atlasBiden = 2679165.\n",
    "\n",
    "print(\"2020 population, Trump+Biden voters, lean = \",np.sum(tractPop),np.sum(vtdPop),stateGOP )\n",
    "print(\"compare to Census\",censusPop,\"Leip has Trump + Biden =\",atlasTrump+atlasBiden,\n",
    "      atlasTrump/(atlasTrump+atlasBiden) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "6c47f717-f208-4a4c-b825-a3181a83c6ee",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "state pop before, after slice operation are 6910839 6910839.0\n",
      "state Trumpers before, after slice opn are 1852463 1852463.0\n"
     ]
    }
   ],
   "source": [
    "#Check on integrity after slicing\n",
    "sumPop = 0.\n",
    "sumTrump = 0.\n",
    "for t in range(nTracts):\n",
    "    if isSkippedTract[t] == 0:\n",
    "        sumPop += tractPop[t]\n",
    "for p in range(nPrecincts):\n",
    "    if isSkippedPrecinct[p] == 0:\n",
    "        sumTrump += vtdTrump[p]\n",
    "print(\"state pop before, after slice operation are\",np.sum(tractPop),sumPop)\n",
    "print(\"state Trumpers before, after slice opn are\",np.sum(vtdTrump),sumTrump)\n",
    "for t in range(nTracts):\n",
    "    if isSkippedTract[t] ==1 and tractPop[t] > 0:  #should not occur\n",
    "        print(\"missed pop for tract, pop, (x,y)\",t,tractPop[t],tractGeom[t].centroid.x,\n",
    "              tractGeom[t].centroid.y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "b5334311-b597-4568-88c7-eb3c9d4bdf09",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "map has a total of 120 grids for 15 districts\n",
      "starting grid no 0 at x = -84.64107166666666, y = 38.58237729999999 \n",
      "starting grid no 5 at x = -84.64107166666666, y = 40.3719203 \n",
      "starting grid no 10 at x = -84.28260499999999, y = 38.5823773 \n",
      "starting grid no 15 at x = -84.28260499999999, y = 40.371920300000006 \n",
      "starting grid no 20 at x = -83.92413833333333, y = 38.58237729999999 \n",
      "starting grid no 25 at x = -83.92413833333333, y = 40.3719203 \n",
      "starting grid no 30 at x = -83.56567166666667, y = 38.5823773 \n",
      "starting grid no 35 at x = -83.56567166666667, y = 40.371920300000006 \n",
      "starting grid no 40 at x = -83.207205, y = 38.58237729999999 \n",
      "starting grid no 45 at x = -83.207205, y = 40.3719203 \n",
      "starting grid no 50 at x = -82.84873833333332, y = 38.58237729999999 \n",
      "starting grid no 55 at x = -82.84873833333332, y = 40.3719203 \n",
      "starting grid no 60 at x = -82.49027166666666, y = 38.5823773 \n",
      "starting grid no 65 at x = -82.49027166666666, y = 40.371920300000006 \n",
      "starting grid no 70 at x = -82.13180499999999, y = 38.58237729999999 \n",
      "starting grid no 75 at x = -82.13180499999999, y = 40.3719203 \n",
      "starting grid no 80 at x = -81.77333833333333, y = 38.5823773 \n",
      "starting grid no 85 at x = -81.77333833333333, y = 40.371920300000006 \n",
      "starting grid no 90 at x = -81.41487166666667, y = 38.58237729999999 \n",
      "starting grid no 95 at x = -81.41487166666667, y = 40.3719203 \n",
      "starting grid no 100 at x = -81.056405, y = 38.5823773 \n",
      "starting grid no 105 at x = -81.056405, y = 40.371920300000006 \n",
      "starting grid no 110 at x = -80.69793833333334, y = 38.58237729999999 \n",
      "starting grid no 115 at x = -80.69793833333334, y = 40.3719203 \n",
      "done building grids. avgGridDensity, maxGridDensity,nPopulatedGrids = 859522.0087495241 7588807.994177476 107.0\n"
     ]
    }
   ],
   "source": [
    "# this section - ESTIMATE POP'N DENSITY at scale of 1/3 of district length\n",
    "# also, IDENTIFY WHICH TRACTS and VTD's INTERSECT EACH GRID to speed later intersection searches by grid \n",
    "# (above sections already pulled in Tract and Precinct geometry and demographic data, built an overall map)\n",
    "nDistricts = 15   #OH congressional\n",
    "avgDistrictPop = np.sum(tractPop) / float(nDistricts)\n",
    "#MAPMaxX = -80.   #In most state maps, we figure this out from the bounding box of the convex hull; see above.\n",
    "#MAPMaxY = 31.1   # ... but for Florida, we will do manually\n",
    "#MAPMinX = -87.0\n",
    "#MAPMinY = 25.5\n",
    "stateWidth = float(MAPMaxX - MAPMinX)\n",
    "stateHeight = float(MAPMaxY - MAPMinY)\n",
    "stateWHRatio = stateWidth / stateHeight\n",
    "G = 3  #adjustable parameter; G*G = number of grids that fit in an average district\n",
    "nGridsX = int( G*round((nDistricts*stateWHRatio)**0.5,0) )   #OK to have empty grids for a non-rectglr state\n",
    "nGridsY = int(round(nGridsX / stateWHRatio,0) )  #so grids are square even if state has high aspect ratio\n",
    "nGrids = int(nGridsX*nGridsY)\n",
    "print(\"map has a total of {0} grids for {1} districts\".format(nGrids,nDistricts) )\n",
    "nGridPrecincts = [0]*nGrids # will store how many precincts intersect with each grid square\n",
    "nGridTracts = [0]*nGrids    # same, but for tracts\n",
    "gridPrecinctNo = [[0]*nPrecincts for gridNo in range(nGrids) ] # initialize a list of VTDs that intersect with each grid square\n",
    "gridTractNo = [[0]*nTracts for gridNo in range(nGrids) ] # initialize a list of tracts that intersect with each grid square\n",
    "\n",
    "gridPop = [0.]*nGrids #will store approx total population for this grid square\n",
    "gridDensity = [0.]*nGrids\n",
    "gridGeom = [Polygon([(0,0),(0,1),(1,0)])]*nGrids  #initialize grid geometry\n",
    "gridWidth = stateWidth /nGridsX        #geo length of a grid's side length\n",
    "gridHeight = stateHeight /nGridsY    \n",
    "\n",
    "for nG in range (nGrids) : #  create polygon shape for each grid square, compute grid-square population density\n",
    "    x = int(nG/nGridsY)\n",
    "    y = int(nG % nGridsY)\n",
    "    point1 = Point(x*gridWidth+MAPMinX,y*gridHeight+MAPMinY)\n",
    "    point2 = Point((x+1)*gridWidth+MAPMinX, y*gridHeight+MAPMinY)\n",
    "    point3 = Point((x+1)*gridWidth+MAPMinX, (y+1)*gridHeight+MAPMinY)\n",
    "    point4 = Point(x*gridWidth+MAPMinX, (y+1)*gridHeight+MAPMinY)\n",
    "    gridGeom[nG] = Polygon([point1, point2, point3, point4])\n",
    "    if (nG %5 == 0): #print occasionally, should take about one second per grid\n",
    "        print(\"starting grid no {0} at x = {1}, y = {2} \".format(nG,gridGeom[nG].centroid.x,gridGeom[nG].centroid.y) )\n",
    "    counter = 0\n",
    "    #    Now for each grid square, find intersxn with all polygons, total the intersection population\n",
    "    #    Also, create 2 lists: of TRACTS and precincts that intersect each grid (efficiency shortcut)\n",
    "    \n",
    "    if( gridGeom[nG].intersection(MAP).area > 0.0001) : #don't bother w grids off the map\n",
    "        for t in range(nTracts):\n",
    "            # if (t%3000 == 0) :\n",
    "            #    print (\"grid {0}, tract no {1}, ({2},{3})\".format(nG,t,tractGeom[t].centroid.x,tractGeom[t].centroid.y) )\n",
    "            intersxnArea = 0.\n",
    "            if (notPoly[t] == 0) :  # tract is a simple polygon\n",
    "                intersxnArea = gridGeom[nG].intersection(tractGeom[t]).area  #replaced tractGeom w cleanedPoly\n",
    "            else : #tract is a multiPolygon, do the polygon intersections individually\n",
    "                print(\"I think tract\",t,\"is a multiPolygon\")\n",
    "                for geom in tractGeom[t].geoms :\n",
    "                    intersxnArea += gridGeom[nG].intersection(geom).area\n",
    "            if (intersxnArea > 0 and tractPop[t] > minTractPop) : # this tract is at least partially in this grid and populated \n",
    "                if (tractArea[t] == 0):  #should not happen, but debugging\n",
    "                    print(t,tractGeom[t].centroid.x, tractGeom[t].centroid.y)  #debug print\n",
    "                gridPop[nG] += tractPop[t]*intersxnArea/tractArea[t]\n",
    "                if tractPop[t] > (1.0 * avgDistrictPop) :  #flag if we have a mega tract\n",
    "                    uhoh = input(\"Uh oh! We have a tract that's bigger than a district.  What now?\")\n",
    "                else :\n",
    "                    gridTractNo[nG][counter] = t  #add this tract to this grid's list, update the no of tracts in grid\n",
    "                    counter +=1            \n",
    "                    nGridTracts[nG] = counter\n",
    "        # OK, now, loop over PRECINCTS to develop each grid's list of precincts (prev loop was for tracts)\n",
    "        counter = 0\n",
    "        for p in range(nPrecincts):\n",
    "            intersxnArea = 0.\n",
    "            if (notPolyVTD[p] == 0) :  # precinct is a simple polygon\n",
    "                intersxnArea = gridGeom[nG].intersection(vtdGeom[p]).area  #replaced tractGeom w cleanedPoly\n",
    "            else : #precinct is a multiPolygon, do the polygon intersections individually\n",
    "                for geom in vtdGeom[p].geoms :\n",
    "                    intersxnArea += gridGeom[nG].intersection(geom).area\n",
    "            intersxnArea = gridGeom[nG].intersection(vtdGeom[p]).area\n",
    "            if (intersxnArea > 0 and vtdPop[p] >0) : # this precinct is at least partially in this grid and recorded votes                 \n",
    "                gridPrecinctNo[nG][counter] = p  #add this precinct to this grid's list, update the no of tracts in grid\n",
    "                counter +=1            \n",
    "                nGridPrecincts[nG] = counter\n",
    "    gridDensity[nG] = gridPop[nG] / gridGeom[nG].area  #finished loop over tracts & vtd's.  Calceach grid's population density    \n",
    "\n",
    "minGridPop = np.min(gridPop)\n",
    "# avgGridPop = np.mean(gridPop)   #see below for explicit averaging, since there are so many empty grids\n",
    "maxGridPop = np.max(gridPop)\n",
    "nPopulatedGrids = 0.\n",
    "totPopulatedGridArea = 0.\n",
    "for nG in range(nGrids) :\n",
    "    if gridPop[nG] > 0. :\n",
    "        nPopulatedGrids +=1\n",
    "        totPopulatedGridArea += gridGeom[nG].area\n",
    "avgGridPop = np.sum(tractPop) / nPopulatedGrids\n",
    "avgGridDensity = np.sum(tractPop) / totPopulatedGridArea\n",
    "#avgGridDensity = np.average(gridDensity) #avgGridPop / (gridPL * gridPL) #these densities help home district algorithm\n",
    "maxGridDensity = np.max(gridDensity)\n",
    "print(\"done building grids. avgGridDensity, maxGridDensity,nPopulatedGrids =\",avgGridDensity,maxGridDensity,nPopulatedGrids)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "808f513f-21af-4b03-8061-fdeeed33dafd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here is a heat map of grid density \n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<function matplotlib.pyplot.show(close=None, block=None)>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"here is a heat map of grid density \")\n",
    "xyGridDensity = [[0.]*nGridsX for x in range (nGridsY) ]   #flipping x and y to get right orientation in pixel grid\n",
    "for nG in range (nGrids) : #  create polygon shape for each grid square, compute grid-square population density\n",
    "    x = int(nG % nGridsY)\n",
    "    y = int(nG / nGridsY)\n",
    "    if gridDensity[nG] > 0 :  #avoid log zero\n",
    "        xyGridDensity[x][y]=np.log(gridDensity[nG])\n",
    "c=plt.pcolormesh(xyGridDensity)\n",
    "plt.colorbar(c)\n",
    "plt.show"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "4013f80b-4fc8-40a1-b708-ee29c29b3ffe",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.9869000000273387e-07 2.3645385499993457e-05\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "10"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(np.min(vtdArea), np.min(tractArea))\n",
    "minTractPop"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "ab450500-f1a4-4292-a2fe-71eb2217121d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I am working on tract number 0 of 3168 tracts\n",
      "I am working on tract number 20 of 3168 tracts\n",
      "I am working on tract number 40 of 3168 tracts\n",
      "I am working on tract number 60 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 64 3.0 1 90.0 0.9946 210455.9\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 64 4.0 1 90.0 0.9449 210455.9\n",
      "I am working on tract number 80 of 3168 tracts\n",
      "I am working on tract number 100 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 115\n",
      "I am working on tract number 120 of 3168 tracts\n",
      "I am working on tract number 140 of 3168 tracts\n",
      "I am working on tract number 160 of 3168 tracts\n",
      "I am working on tract number 180 of 3168 tracts\n",
      "I am working on tract number 200 of 3168 tracts\n",
      "I am working on tract number 220 of 3168 tracts\n",
      "I am working on tract number 240 of 3168 tracts\n",
      "I am working on tract number 260 of 3168 tracts\n",
      "I am working on tract number 280 of 3168 tracts\n",
      "I am working on tract number 300 of 3168 tracts\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_106/515021646.py:66: RuntimeWarning: divide by zero encountered in double_scalars\n",
      "  minR = (avgDistrictPop / maxStartDensity / pi)**0.5   # conservative estimated radius of this tract's district\n",
      "/tmp/ipykernel_106/515021646.py:99: RuntimeWarning: invalid value encountered in multiply\n",
      "  wedgePop[nW] = tractPop[t]* wedgePoly.area/max(tractArea[t],minTractArea)  #max prevents rare div-by-zero\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "we have 2 non-opposing shorted wedges for tract no 315\n",
      "I am working on tract number 320 of 3168 tracts\n",
      "I am working on tract number 340 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 353\n",
      "I am working on tract number 360 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 371 5.0 0 85.1 0.4622 214877.6\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 371 6.0 0 85.1 0.4321 214877.6\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 371 7.0 0 85.1 0.404 214877.6\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 371 8.0 0 85.1 0.3778 214877.6\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 371 9.0 0 85.1 0.3532 214877.6\n",
      "I am working on tract number 380 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 396 5.0 0 88.8 0.2921 200413.9\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 396 6.0 0 88.8 0.288 200413.9\n",
      "I am working on tract number 400 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 403 5.0 0 89.0 0.4097 201835.1\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 403 6.0 0 89.0 0.4018 201835.1\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 403 7.0 0 89.0 0.394 201835.1\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 403 8.0 0 89.0 0.3863 201835.1\n",
      "I am working on tract number 420 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 422\n",
      "I am working on tract number 440 of 3168 tracts\n",
      "I am working on tract number 460 of 3168 tracts\n",
      "I am working on tract number 480 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 493\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 495 3.0 1 49.0 0.5466 321751.0\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 495 4.0 1 49.0 0.4384 321751.0\n",
      "I am working on tract number 500 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 501\n",
      "I am working on tract number 520 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 527 2.0 3 90.0 0.3502 282841.6\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 3.0 0 87.1 0.6564 210703.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 4.0 0 87.1 0.623 210703.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 5.0 0 87.1 0.5913 210703.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 6.0 0 87.1 0.5612 210703.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 7.0 0 87.1 0.5327 210703.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 8.0 0 87.1 0.5056 210703.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 9.0 0 87.1 0.4799 210703.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 10.0 0 87.1 0.4555 210703.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 11.0 0 87.1 0.4323 210703.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 12.0 0 87.1 0.4103 210703.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 13.0 0 87.1 0.3895 210703.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 528 14.0 0 87.1 0.3696 210703.4\n",
      "I am working on tract number 540 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 540 2.0 1 90.0 0.6007 288933.0\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 549 5.0 0 87.0 0.6496 360752.5\n",
      "I am working on tract number 560 of 3168 tracts\n",
      "I am working on tract number 580 of 3168 tracts\n",
      "I am working on tract number 600 of 3168 tracts\n",
      "I am working on tract number 620 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 630\n",
      "we have 2 non-opposing shorted wedges for tract no 634\n",
      "we have 2 non-opposing shorted wedges for tract no 635\n",
      "I am working on tract number 640 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 647\n",
      "we have 2 non-opposing shorted wedges for tract no 652\n",
      "I am working on tract number 660 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 663\n",
      "we have 2 non-opposing shorted wedges for tract no 664\n",
      "we have 2 non-opposing shorted wedges for tract no 666\n",
      "I am working on tract number 680 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 681 5.0 0 142.5 1.5645 232615.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 681 6.0 0 142.5 1.3755 232615.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 684 7.0 1 44.8 3.0726 353541.2\n",
      "we have 2 non-opposing shorted wedges for tract no 690\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 692 5.0 0 89.3 0.5038 199652.5\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 692 6.0 0 89.3 0.4981 199652.5\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 692 7.0 0 89.3 0.4925 199652.5\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 692 8.0 0 89.3 0.4869 199652.5\n",
      "I am working on tract number 700 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 701\n",
      "we have 2 non-opposing shorted wedges for tract no 704\n",
      "I am working on tract number 720 of 3168 tracts\n",
      "I am working on tract number 740 of 3168 tracts\n",
      "I am working on tract number 760 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 769 2.0 0 90.0 0.4727 226014.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 769 3.0 0 90.0 0.425 226014.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 769 4.0 0 90.0 0.3822 226014.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 769 5.0 0 90.0 0.3437 226014.3\n",
      "I am working on tract number 780 of 3168 tracts\n",
      "I am working on tract number 800 of 3168 tracts\n",
      "I am working on tract number 820 of 3168 tracts\n",
      "I am working on tract number 840 of 3168 tracts\n",
      "I am working on tract number 860 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 878 2.0 0 90.0 0.6593 413718.2\n",
      "I am working on tract number 880 of 3168 tracts\n",
      "I am working on tract number 900 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 912\n",
      "we have 2 non-opposing shorted wedges for tract no 916\n",
      "I am working on tract number 920 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 928 3.0 0 108.8 0.7809 264242.9\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 928 4.0 0 108.8 0.6201 264242.9\n",
      "I am working on tract number 940 of 3168 tracts\n",
      "I am working on tract number 960 of 3168 tracts\n",
      "I am working on tract number 980 of 3168 tracts\n",
      "I am working on tract number 1000 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1003\n",
      "I am working on tract number 1020 of 3168 tracts\n",
      "I am working on tract number 1040 of 3168 tracts\n",
      "I am working on tract number 1060 of 3168 tracts\n",
      "7 yoyos for tract,wedge,wedgePop,r= 1064 2 436566.79506697255 1.0562\n",
      "8 yoyos for tract,wedge,wedgePop,r= 1064 2 19315.951676818368 0.5281\n",
      "9 yoyos for tract,wedge,wedgePop,r= 1064 2 435577.6644840001 1.0229\n",
      "9 yoyos for tract,wedge,wedgePop,r= 1064 2 283511.0941137568 0.7755\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1064 2 76808.79104379701 0.6518\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1064 2 172824.5799556253 0.7136\n",
      "11 yoyos for tract,wedge,wedgePop,r= 1064 2 217893.7125467009 0.7445\n",
      "I am working on tract number 1080 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1082 2.0 1 90.0 0.5274 294313.6\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1083 3.0 0 135.3 0.772 229041.0\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1083 4.0 0 135.3 0.687 229041.0\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1083 5.0 0 135.3 0.6114 229041.0\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1083 6.0 0 135.3 0.5441 229041.0\n",
      "I am working on tract number 1100 of 3168 tracts\n",
      "I am working on tract number 1120 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1131 4.0 3 36.0 1.7252 277604.8\n",
      "I am working on tract number 1140 of 3168 tracts\n",
      "I am working on tract number 1160 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1162 2.0 3 90.0 0.4871 200280.7\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1162 3.0 3 90.0 0.4805 200280.7\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1162 4.0 3 90.0 0.4739 200280.7\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1162 5.0 3 90.0 0.4675 200280.7\n",
      "we have 2 non-opposing shorted wedges for tract no 1177\n",
      "I am working on tract number 1180 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1193 6.0 0 132.1 1.0065 281082.7\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1193 7.0 0 132.1 0.9069 281082.7\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1193 8.0 0 132.1 0.8172 281082.7\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1195 4.0 0 128.0 0.7215 330129.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1197 2.0 1 90.0 0.7684 281922.2\n",
      "I am working on tract number 1200 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1202\n",
      "we have 2 non-opposing shorted wedges for tract no 1203\n",
      "we have 2 non-opposing shorted wedges for tract no 1205\n",
      "we have 2 non-opposing shorted wedges for tract no 1207\n",
      "we have 2 non-opposing shorted wedges for tract no 1209\n",
      "I am working on tract number 1220 of 3168 tracts\n",
      "I am working on tract number 1240 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1241 7.0 0 108.2 1.6673 204039.4\n",
      "I am working on tract number 1260 of 3168 tracts\n",
      "I am working on tract number 1280 of 3168 tracts\n",
      "I am working on tract number 1300 of 3168 tracts\n",
      "I am working on tract number 1320 of 3168 tracts\n",
      "I am working on tract number 1340 of 3168 tracts\n",
      "I am working on tract number 1360 of 3168 tracts\n",
      "7 yoyos for tract,wedge,wedgePop,r= 1361 3 372354.1472711895 1.1747\n",
      "8 yoyos for tract,wedge,wedgePop,r= 1361 3 319266.7106153269 0.5874\n",
      "9 yoyos for tract,wedge,wedgePop,r= 1361 3 383628.72355715715 1.1936\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1361 3 332987.38900733495 0.8905\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1361 3 346254.3184242715 1.0421\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1361 3 353596.83998224325 1.1178\n",
      "10 yoyos for tract,wedge,wedgePop,r= 1361 3 360695.9504520188 1.1557\n",
      "11 yoyos for tract,wedge,wedgePop,r= 1361 3 372315.8328831071 1.1747\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1363 9.0 1 61.9 1.1863 232433.7\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1374 3.0 2 90.0 1.3671 199691.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1374 4.0 2 90.0 1.3515 199691.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1374 5.0 1 90.0 2.265 202796.5\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1374 6.0 1 90.0 2.2132 202796.5\n",
      "I am working on tract number 1380 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1394\n",
      "I am working on tract number 1400 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1404\n",
      "we have 2 non-opposing shorted wedges for tract no 1405\n",
      "we have 2 non-opposing shorted wedges for tract no 1406\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1408 2.0 0 90.0 0.7487 295411.8\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1410 2.0 1 90.0 0.7371 310655.9\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1412 4.0 0 143.5 1.7418 269903.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1412 5.0 0 143.5 1.7021 269903.4\n",
      "I am working on tract number 1420 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1439\n",
      "I am working on tract number 1440 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1441\n",
      "we have 2 non-opposing shorted wedges for tract no 1442\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1456 4.0 0 84.6 0.7314 227873.9\n",
      "I am working on tract number 1460 of 3168 tracts\n",
      "I am working on tract number 1480 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1488\n",
      "I am working on tract number 1500 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1513\n",
      "I am working on tract number 1520 of 3168 tracts\n",
      "I am working on tract number 1540 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1543\n",
      "I am working on tract number 1560 of 3168 tracts\n",
      "I am working on tract number 1580 of 3168 tracts\n",
      "I am working on tract number 1600 of 3168 tracts\n",
      "I am working on tract number 1620 of 3168 tracts\n",
      "I am working on tract number 1640 of 3168 tracts\n",
      "I am working on tract number 1660 of 3168 tracts\n",
      "I am working on tract number 1680 of 3168 tracts\n",
      "I am working on tract number 1700 of 3168 tracts\n",
      "I am working on tract number 1720 of 3168 tracts\n",
      "I am working on tract number 1740 of 3168 tracts\n",
      "I am working on tract number 1760 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1779 3.0 1 39.6 0.6418 558567.2\n",
      "I am working on tract number 1780 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1795\n",
      "I am working on tract number 1800 of 3168 tracts\n",
      "I am working on tract number 1820 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1823\n",
      "I am working on tract number 1840 of 3168 tracts\n",
      "I am working on tract number 1860 of 3168 tracts\n",
      "I am working on tract number 1880 of 3168 tracts\n",
      "I am working on tract number 1900 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 1918\n",
      "I am working on tract number 1920 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1921 4.0 0 84.0 0.7305 291586.1\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 1921 5.0 0 84.0 0.5347 291586.1\n",
      "I am working on tract number 1940 of 3168 tracts\n",
      "I am working on tract number 1960 of 3168 tracts\n",
      "I am working on tract number 1980 of 3168 tracts\n",
      "I am working on tract number 2000 of 3168 tracts\n",
      "I am working on tract number 2020 of 3168 tracts\n",
      "I am working on tract number 2040 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2042\n",
      "I am working on tract number 2060 of 3168 tracts\n",
      "I am working on tract number 2080 of 3168 tracts\n",
      "I am working on tract number 2100 of 3168 tracts\n",
      "I am working on tract number 2120 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2129\n",
      "we have 2 non-opposing shorted wedges for tract no 2137\n",
      "we have 2 non-opposing shorted wedges for tract no 2139\n",
      "I am working on tract number 2140 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2141\n",
      "I am working on tract number 2160 of 3168 tracts\n",
      "I am working on tract number 2180 of 3168 tracts\n",
      "I am working on tract number 2200 of 3168 tracts\n",
      "I am working on tract number 2220 of 3168 tracts\n",
      "I am working on tract number 2240 of 3168 tracts\n",
      "I am working on tract number 2260 of 3168 tracts\n",
      "I am working on tract number 2280 of 3168 tracts\n",
      "I am working on tract number 2300 of 3168 tracts\n",
      "I am working on tract number 2320 of 3168 tracts\n",
      "I am working on tract number 2340 of 3168 tracts\n",
      "I am working on tract number 2360 of 3168 tracts\n",
      "I am working on tract number 2380 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2383 6.0 1 41.1 0.59 240005.2\n",
      "I am working on tract number 2400 of 3168 tracts\n",
      "I am working on tract number 2420 of 3168 tracts\n",
      "I am working on tract number 2440 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2450\n",
      "I am working on tract number 2460 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2460 2.0 2 90.0 0.5685 495744.9\n",
      "we have 2 non-opposing shorted wedges for tract no 2460\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2465 5.0 0 89.6 0.5984 197804.2\n",
      "I am working on tract number 2480 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2480\n",
      "I am working on tract number 2500 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2505 2.0 0 90.0 0.57 242716.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2505 3.0 0 90.0 0.4847 242716.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2512 6.0 0 86.3 1.2172 218796.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2516 3.0 2 90.0 1.1595 222363.3\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2516 7.0 0 88.8 1.2343 203834.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2516 8.0 0 88.8 1.2014 203834.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2516 9.0 0 88.8 1.1694 203834.4\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2516 10.0 0 88.8 1.1382 203834.4\n",
      "I am working on tract number 2520 of 3168 tracts\n",
      "I am working on tract number 2540 of 3168 tracts\n",
      "I am working on tract number 2560 of 3168 tracts\n",
      "I am working on tract number 2580 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2583\n",
      "I am working on tract number 2600 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2603\n",
      "we have 2 non-opposing shorted wedges for tract no 2604\n",
      "we have 2 non-opposing shorted wedges for tract no 2605\n",
      "we have 2 non-opposing shorted wedges for tract no 2606\n",
      "we have 2 non-opposing shorted wedges for tract no 2607\n",
      "we have 2 non-opposing shorted wedges for tract no 2608\n",
      "I am working on tract number 2620 of 3168 tracts\n",
      "I am working on tract number 2640 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2654\n",
      "we have 2 non-opposing shorted wedges for tract no 2655\n",
      "we have 2 non-opposing shorted wedges for tract no 2656\n",
      "we have 2 non-opposing shorted wedges for tract no 2657\n",
      "we have 2 non-opposing shorted wedges for tract no 2659\n",
      "I am working on tract number 2660 of 3168 tracts\n",
      "I am working on tract number 2680 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2692\n",
      "we have 2 non-opposing shorted wedges for tract no 2693\n",
      "we have 2 non-opposing shorted wedges for tract no 2696\n",
      "I am working on tract number 2700 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2702 8.0 0 127.3 1.0661 236681.3\n",
      "I am working on tract number 2720 of 3168 tracts\n",
      "I am working on tract number 2740 of 3168 tracts\n",
      "I am working on tract number 2760 of 3168 tracts\n",
      "I am working on tract number 2780 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2783\n",
      "I am working on tract number 2800 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2807\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2810 3.0 1 47.5 0.6899 460886.5\n",
      "we have 2 non-opposing shorted wedges for tract no 2819\n",
      "I am working on tract number 2820 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2823\n",
      "we have 2 non-opposing shorted wedges for tract no 2824\n",
      "we have 2 non-opposing shorted wedges for tract no 2832\n",
      "I am working on tract number 2840 of 3168 tracts\n",
      "I am working on tract number 2860 of 3168 tracts\n",
      "I am working on tract number 2880 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2899\n",
      "I am working on tract number 2900 of 3168 tracts\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 2908 6.0 0 104.0 1.6459 240677.1\n",
      "I am working on tract number 2920 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 2929\n",
      "I am working on tract number 2940 of 3168 tracts\n",
      "I am working on tract number 2960 of 3168 tracts\n",
      "I am working on tract number 2980 of 3168 tracts\n",
      "I am working on tract number 3000 of 3168 tracts\n",
      "I am working on tract number 3020 of 3168 tracts\n",
      "I am working on tract number 3040 of 3168 tracts\n",
      "I am working on tract number 3060 of 3168 tracts\n",
      "I am working on tract number 3080 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 3092\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 3093 4.0 0 83.3 0.6385 265201.7\n",
      "we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop 3093 5.0 0 83.3 0.5055 265201.7\n",
      "I am working on tract number 3100 of 3168 tracts\n",
      "we have 2 non-opposing shorted wedges for tract no 3111\n",
      "I am working on tract number 3120 of 3168 tracts\n",
      "I am working on tract number 3140 of 3168 tracts\n",
      "I am working on tract number 3160 of 3168 tracts\n",
      "Sum of weights over all precinct home districts should have been 1.000, but was  1.0000118982535453\n",
      "Average and max number of wedgePop loops per tract were:  6.752525252525253 21.0\n",
      "min,average,max of Home District areas were:  0.0 0.7732862927692049 2.7146550152660796\n",
      "calculated statewide vote was 0.5431534082347912, should have been 0.5407669764770272\n",
      "calcd statewide Hispanic pop was 0.0336131839043248, should have been 0.03649478548175945\n",
      "calcd statewide Black pop was 0.1060237564147575, should have been 0.11790450067020998\n",
      "fraction of HDs that with altered wedge angles near boundaries =  0.41571969696969696\n"
     ]
    }
   ],
   "source": [
    "#3/13/22 - from HD2, but using coeff1, coeff2 (unrestricted opp wedge pop, wideAngle quadratic in ratio)\n",
    "# Bisect for yoyo > 3, precinct calcs after wedges finalized.  More aggressive Euler gain\n",
    "#minTractPop = 10  #this is set in a prior block\n",
    "pi=3.1415926536\n",
    "nWedges = 4  #number of wedges per home district polygon  \n",
    "avgWedgeAngle = 2*pi / nWedges\n",
    "wedgeTriAR = [math.sin(pi/nWedges)*math.cos(pi/nWedges)]*nWedges  #wedge triangle area ratio (= area / r*r)\n",
    "angle = [0.]*nWedges\n",
    "angle2 = [0.]*nWedges\n",
    "pt1 = [Point(0,0)]*nWedges  #these four define the polygon wedge for a growing home district\n",
    "pt2 = [Point(0,0)]*nWedges\n",
    "pt3 = [Point(0,0)]*nWedges\n",
    "pt4 = [Point(0,0)]*nWedges\n",
    "oldR = [0.]*nWedges  #wedge radius from previous loop\n",
    "# guessedR = [0.]*nWedges  #obsolete; was wedge radius if we extrapolate from population density of most recent wedge piece\n",
    "printPoly = [Polygon([(0,0),(0,1),(1,1)])]*nWedges #for debugging\n",
    "wedgePop = [0.]*nWedges\n",
    "tractLoopCounter = [0.]* nTracts  #this tracks how many loops per tract to get to target wedge Pop\n",
    "nearEdge = [0.]* nTracts   #not yet implemented; this will flag tracts near map edge for reprocessing\n",
    "tractUse = [0.] * nTracts  #this will store how much we use this tract in ALL HD's vs. expectation\n",
    "precinctUse = [0.] * nPrecincts   #same, but for each precinct / VTD\n",
    "loopTractUse = [0.] * nTracts  #same as above two, but only for the current loop / tract\n",
    "loopPrecinctUse = [0.] * nPrecincts\n",
    "HDvPop = [0.]*nTracts\n",
    "HDvGOP = [0.]*nTracts  #GOP lean of each tract's \"home district\"\n",
    "HDvBlack = [0.]*nTracts\n",
    "HDvHisp = [0.]*nTracts #pct Hispanic by home district\n",
    "HDweight = [0.]*nTracts  #relative weight of each district.  In absence of splits, will equal precinct pop\n",
    "HDarea = [0.]*nTracts  #geographical area of each home district\n",
    "HDradius = [[0.]*nWedges for t in range(nTracts)] #final wedge length for each Home District wedge\n",
    "HDangle = [[0.]*nWedges for t in range(nTracts)] #final included angle for each HD wedge\n",
    "angle0 = [-999.] * nTracts  #orientation of 0th wedge.  Random except re-oriented if we are near-boundary\n",
    "toler = 0.005  #adjustable - fractional slop in district population.  normally 0.01, to be reduced to 0.005\n",
    "tolerPop = toler * avgDistrictPop  #absolute slop in district pop\n",
    "nLoopPrint = 30  #at this loop number, we alert user of problem\n",
    "nGiveUp = 40  #we punt after this many loops\n",
    "nLoopSuperPrint = nGiveUp - 2 # at this loop number, we output wedge growth visuals\n",
    "wrongPop = [0.]*nTracts\n",
    "normalGain = 0.8  #adjustable - a bit less than 1.0 for stability, how far we step relative to expected perfect guess\n",
    "EulerGain = 1.5 #if we hit empty land, gain more aggressively to get through it\n",
    "#yoyoFactor = 0.3 #rate of reduction in gain as solver continues to yoyo in solving a wedge  #not currently used ***\n",
    "globalMax_dr = (MAP.area/nDistricts) ** 0.5  #put a reasonable upper limit on wedge radial growth step size\n",
    "tractPrintInterval = 20  #for tracking progress\n",
    "minTractArea = 0.00001 * MAP.area / nTracts  #failsafe for later div-by-zero\n",
    "homePopDensity = avgGridDensity  #seed this\n",
    "didWeRestart = [0] * nTracts  #will flag if we adjusted wedge angles due to a single shorted wedge\n",
    "coeff1 = 0.3  #linear term. we will adjust this empirically to tighten tract weighting near boundaries\n",
    "coeff2 = 0.3  #quadratic term.  These two control distortion in wedge angles relative to wedgePop shortness\n",
    "minWedgePop = [avgDistrictPop/nWedges] * nTracts  #wedge pop for wedge facing boundary (for tracts near boundaries)\n",
    "maxWideAngle = 0.8 * pi  #adjustable parameter.  (avoid wedges too close to half a pie\n",
    "\n",
    "for t in range(nTracts) :  #(nTracts):  #loop on each tract.  Start by resetting stats\n",
    "    gain = normalGain  #in case last precinct had convergence problems\n",
    "    if (t % tractPrintInterval) == 0 : \n",
    "        print(\"I am working on tract number {0} of {1} tracts\".format(t,nTracts) )\n",
    "    tractLoopCounter[t] = 0.  #for stability stats, will track how many times we need to loop for each tract\n",
    "    # isActiveG = [0]*nGrids  #resets whether each grid is relevant to this tract (not used; see alt grid turn-on method)\n",
    "    if (tractArea[t] > minTractArea) :  #too lazy to indent everything.  We'll catch zero tractArea later\n",
    "        homePopDensity = tractPop[t]/tractArea[t]  #temporary - estimate the local density for initial step\n",
    "    tractCP = Point(tractGeom[t].centroid.x,tractGeom[t].centroid.y)  #shorthand for centroid of each tract\n",
    "    for nG in range(nGrids):\n",
    "        if gridGeom[nG].contains(tractCP) :  #which grid contains the centroid of this tract?  Turn it on!\n",
    "            # isActiveG[nG] = 1  #I don't think I use this\n",
    "            homeGridDensity = gridDensity[nG]\n",
    "    maxStartDensity = max(homePopDensity,homeGridDensity)\n",
    "    minR = (avgDistrictPop / maxStartDensity / pi)**0.5   # conservative estimated radius of this tract's district\n",
    "    tinyR = 0.01 * minR   #ensures we start with small, but not infinitesimal wedge populations\n",
    "    angle0[t] = random.uniform(0,2.*pi)  #imparts random orientation to our starting wedge\n",
    "    loopTractUse = [0.]*nTracts  #this and below help us reset tract n precinct use after a wedge reset\n",
    "    loopPrecinctUse = [0.]*nPrecincts\n",
    "    # ***GROW WEDGES SIMULTANEOUSLY via ARRAYS, SO WE CAN REACT ON FLY TO BOUNDARY STOPS\n",
    "    HDpop = 0.  #running total of this tract's \"home district\" population\n",
    "    nActiveWedges = nWedges #active wedges have not run over boudnary\n",
    "    targetWedgePop = [avgDistrictPop / nWedges]*nWedges  #at beginning, split districtPop equally among wedges\n",
    "    #latestWedgeDensity = [0.]*nWedges  #stop using # pop'n density of the wedge piece we just added or subtracted\n",
    "    wedgePop = [0.]*nWedges\n",
    "    oldWedgePop = [0.]*nWedges  #wedge pop from previous round (needed for NR projection)\n",
    "    wedgePopGap = [0.]*nWedges\n",
    "    isOverEdge = [0] *nWedges #each wedge is still fully inside map boundary\n",
    "    isSatisfied = [0] * nWedges #wedges close enough to target are not improved upon\n",
    "    yoyoCount = [0] * nWedges #tracks how many times we've reversed this wedge's growth vs. shrink at current wPop target\n",
    "    wedgeMaxR = [0.] * nWedges #will track the largest radius this wedge has seen (to cap yoyo bisection step)\n",
    "    wedgeAngle = [avgWedgeAngle] * nWedges #reset to equi-angle when starting each tract    \n",
    "    currentR = [0.]*nWedges\n",
    "    old_dr = [0.]*nWedges\n",
    "    wedgeStop = 0  #obsolete? this will flag if we need to rejigger oldR when we stopped an over-boundary wedge\n",
    "    for nW in range(nWedges):\n",
    "        currentR[nW] = tinyR  #each wedge starts as a tiny triangle of this radius\n",
    "        old_dr[nW] = currentR[nW] #this will track the last radial step (to help convergence)\n",
    "    oldR = [0.]*nWedges   #for remembering last loop's wedge radius\n",
    "    max_dr = [globalMax_dr]*nWedges  #reset max possible positive radial step size\n",
    "    for nW in range(nWedges) :  #this loop: set up tiny wedges in each direction to seed each wedge loop\n",
    "        angle[nW] = (nW-0.5)*wedgeAngle[nW]+angle0[t]   #local variable for orientation of START of wedge\n",
    "        angle2[nW] = angle[nW]+wedgeAngle[nW]      #local angle for clockwise END of wedge\n",
    "        pt1[nW] = tractCP\n",
    "        pt2[nW] = Point(tractCP.x+currentR[nW]*math.cos(angle[nW]),  tractCP.y+currentR[nW]*math.sin(angle[nW]) )\n",
    "        pt3[nW] = Point(tractCP.x+currentR[nW]*math.cos(angle2[nW]), tractCP.y+currentR[nW]*math.sin(angle2[nW]) )\n",
    "        wedgePoly = Polygon([pt1[nW], pt2[nW], pt3[nW] ]) #build a tiny starter wedge triangle\n",
    "        wedgePop[nW] = tractPop[t]* wedgePoly.area/max(tractArea[t],minTractArea)  #max prevents rare div-by-zero\n",
    "    HDpop = np.sum(wedgePop)\n",
    "    if (tractPop[t] < minTractPop or tractArea[t] == 0 or isSkippedTract[t] == 1):\n",
    "        #go directly to jail, do not pass Go, this tract doesn't count\n",
    "        HDpop = avgDistrictPop  #white lie to kick us out of loop\n",
    "    while abs (HDpop - avgDistrictPop) > tolerPop :  #until we've grown the home district to the right size...\n",
    "        sumWedgePopGapChange = 0  #this will total wedge pops that fall short of expectations (when over boundary)\n",
    "        for nW in range(nWedges) :  #for each wedge, we'll build to gain pop or shrink to lose population ...\n",
    "            neededWedgePop = targetWedgePop[nW] - wedgePop[nW]\n",
    "            isSatisfied[nW] = 0  #default in case target changed last loop.  We'll check immediately below\n",
    "            if abs(neededWedgePop/targetWedgePop[nW]) < 0.5*toler :  #is this wedge close enough to stop iterating on it?\n",
    "                isSatisfied[nW] = 1\n",
    "            if isOverEdge[nW] == 0 and isSatisfied[nW] == 0:   #we skip over-boundary and near-perfect wedges\n",
    "                wedgePopDelta = wedgePop[nW] - oldWedgePop[nW]  #how much wedgePop gained in last loop\n",
    "                if (wedgePopDelta == 0): #our last wedge change was in an empty area (desert or off map)\n",
    "                    gainAdjust = EulerGain/gain  #Euler method often over-cautious at map edges or in sparse areas\n",
    "                    guessedRsquared = currentR[nW]*currentR[nW] * targetWedgePop[nW] / wedgePop[nW]  #Euler guess\n",
    "                    # can't use Newton-Raphson since last dy was zero, use Euler instead\n",
    "                    print(\"we hit a zero wedgePopDelta for tract, loop, wedge, wedgeAngle,r,pop\",t,tractLoopCounter[t],\n",
    "                          nW, round(180./pi*wedgeAngle[nW],1),round(currentR[nW],4),round(wedgePop[nW],1))\n",
    "                else: #use N-R estimation\n",
    "                    gainAdjust = 1.0\n",
    "                    R2delta = currentR[nW]*currentR[nW] - oldR[nW]*oldR[nW]  #this and below are run/rise of current slope\n",
    "                    guessedRsquared = currentR[nW]*currentR[nW] + R2delta / wedgePopDelta * neededWedgePop\n",
    "                    \n",
    "                guessedRsquared = max( guessedRsquared, 0. ) #minimum guardrail\n",
    "                guessed_dr = guessedRsquared ** 0.5 - currentR[nW]  #best guess for wedge radius change\n",
    "                #gain = max(0.3,normalGain ** (1. + yoyoFactor * yoyoCount[nW]))  #obsolete; using bisect\n",
    "                dr = gain * gainAdjust * guessed_dr   #gain typically ~0.8 for stability\n",
    "                dr = max( -0.5*currentR[nW],min(dr,max_dr[nW]) )  #apply min and max guardrails to wedge radius change\n",
    "                \n",
    "                if np.sign(dr) != np.sign(old_dr[nW]) :  #are we yoyoing? How many times?\n",
    "                    yoyoCount[nW] += 1\n",
    "                if yoyoCount[nW] > 3 and yoyoCount[nW] <= 6 :\n",
    "                    wedgeMaxR[nW] = max(wedgeMaxR[nW],currentR[nW]) #will track largest R in yoyo cycle\n",
    "                    max_dr[nW] = 2.*wedgeMaxR[nW]  #this will now store a reasonable max bisection step size\n",
    "                if yoyoCount[nW] > 6 :  #switch to bisection method; too many yo-yo's\n",
    "                    print(yoyoCount[nW],\"yoyos for tract,wedge,wedgePop,r=\",t,nW,wedgePop[nW],round(currentR[nW],4) )\n",
    "                    max_dr[nW] = 0.5 * max_dr[nW] #we are now bisecting ...\n",
    "                    if(neededWedgePop < 0):\n",
    "                        dr = max(-1.*max_dr[nW], -0.5*currentR[nW])  #reduce wedge size\n",
    "                    else:\n",
    "                        dr = max_dr[nW]  #increase wedge size\n",
    "                old_dr[nW] = dr  #these three lines -- save current as old values for next loop\n",
    "                oldR[nW] = currentR[nW]\n",
    "                oldWedgePop[nW] = wedgePop[nW]\n",
    "                if dr > 0. :  #we are growing a wedge trapezoid piece \n",
    "                    outerR = currentR[nW] + dr\n",
    "                    innerR = currentR[nW]\n",
    "                    currentR[nW] = outerR    #for next loop around\n",
    "                else:    #this wedge trapezoid piece will be SUBTRACTED from current wedge\n",
    "                    outerR = currentR[nW]\n",
    "                    innerR = currentR[nW] + dr  #remember, dr is negative here\n",
    "                    currentR[nW] = innerR             #for next loop around\n",
    "                #now, describe the new wedge to probe for precinct intersections ...\n",
    "                pt1[nW] = Point(tractCP.x+innerR*math.cos(angle[nW]), tractCP.y+innerR*math.sin(angle[nW]) )\n",
    "                pt2[nW] = Point(tractCP.x+outerR*math.cos(angle[nW]), tractCP.y+outerR*math.sin(angle[nW]) )\n",
    "                pt3[nW] = Point(tractCP.x+outerR*math.cos(angle2[nW]),tractCP.y+outerR*math.sin(angle2[nW]) )\n",
    "                pt4[nW] = Point(tractCP.x+innerR*math.cos(angle2[nW]),tractCP.y+innerR*math.sin(angle2[nW]) )\n",
    "                wedgePoly = Polygon([pt1[nW], pt2[nW], pt3[nW],pt4[nW]])  #true for wedge add-on or to-be-trimmed\n",
    "                \n",
    "                printPoly[nW] = wedgePoly  #for debugging\n",
    "                latestWedgePop = 0.  #for the new piece, not the entire triangle\n",
    "                usedTract = [0]*nTracts  #rezero lists of tracts and precincts that could straddle multiple grids\n",
    "                usedPrecinct = [0]*nPrecincts\n",
    "                for nG in range(nGrids) :  # loop over ACTIVE grids to look for intersecting tracts\n",
    "                    gridIntersxn = gridGeom[nG].intersection(wedgePoly)\n",
    "                    if (gridIntersxn.area > 0) :  #this grid is RELEVANT to this wedge\n",
    "                        for tt in range(nGridTracts[nG]) : #look for intersxns with all tracts in this grid\n",
    "                            nTT = gridTractNo[nG][tt] #shorthand for this tract's global tract no\n",
    "                            if(usedTract[nTT] == 0) :  #Did we not already look at this tract in another grid list?\n",
    "                                usedTract[nTT] = 1  #well, now we have!  Probe intersection with wedge\n",
    "                                overlap = tractGeom[nTT].intersection(wedgePoly).area\n",
    "                                if overlap > 0 :\n",
    "                                    fracArea = overlap/tractArea[nTT]\n",
    "                                    latestWedgePop  += fracArea*tractPop[nTT]  #always positive (used in density calc)\n",
    "                                    loopTractUse[nTT] += np.sign(dr)*overlap/tractArea[nTT] * tractPop[t]/avgDistrictPop\n",
    "                        # found all possible tract overlaps with this increment / decrement to this wedge.\n",
    "                        \n",
    "                wedgePop[nW] += np.sign(dr)*latestWedgePop  #for full triangle, based on this latest piece\n",
    "                # Now, flag if we're beyond boundary\n",
    "                if wedgePop[nW] < targetWedgePop[nW] : #if growing, confirm we're not beyond MAP boundary\n",
    "                    leadingEdge = LineString([pt2[nW],pt3[nW]])\n",
    "                    if leadingEdge.intersects(MAP) :  #still room to grow in part of edge, keep going\n",
    "                        gerrymandering = \"evil\"  #it had to be said\n",
    "                    else:  #this wedge is fully beyond the map. give up on more map intersection\n",
    "                        isOverEdge[nW] = 1\n",
    "                        shortedWedge = nW  #ID'ing highest numbered wedge that got shorted by the boundary in this loop\n",
    "                        oldWedgePopGap = wedgePopGap[nW]\n",
    "                        wedgePopGap[nW] = targetWedgePop[nW] - wedgePop[nW]  #how far this wedge's pop is below its target\n",
    "                        nActiveWedges -= 1  #a few lines below, we will adjust other wedge's targets\n",
    "                        sumWedgePopGapChange += wedgePopGap[nW] - oldWedgePopGap\n",
    "                        if (nActiveWedges == 0) : #we're doomed, somehow all wedges are short and off map\n",
    "                            print(\"PUNT! no more active wedges for tract, loop =\",t,tractLoopCounter[t] )\n",
    "                            tractLoopCounter[t] = nGiveUp + 1  #PUNT !!!\n",
    "                            \n",
    "                        max_dr = [globalMax_dr]*nWedges   #allow other wedges to take big steps again to catch up\n",
    "                        yoyoCount = [0] * nWedges  #go back to original gains on ALL active wedges\n",
    "                   \n",
    "        # end of nW loop to adjust all wedge populations by growing or trimming wedges, IDing over-edge wedges\n",
    "        tractLoopCounter[t] +=1   # still looping on home district Pop.\n",
    "        nReceivingWedges = nActiveWedges\n",
    "        oppFlag = 0\n",
    "        if 0 == 1: #always false; for HD2 we would have checked here for opp wedge restriction; ignore this block\n",
    "            # targetWedgePop[int(nWedges/2)] < 0.99 * avgDistrictPop/float(nWedges): #is opp wedge restricted?\n",
    "            oppFlag = 1\n",
    "            nReceivingWedges -= 1-isOverEdge[int(nWedges/2)]  #if yes, don't count opposite wedge as a receiver\n",
    "        if nReceivingWedges == 0: #rarely, the opposite wedge is the only active one\n",
    "            for nWW in range(nWedges): #in this case, we allow the opposite wedge to pick up the slack\n",
    "                targetWedgePop[nWW] += sumWedgePopGapChange/max(1.,float(nReceivingWedges) )\n",
    "        else: #if the opp wedge has a ceiling wedgePopTarget, distribute wedgePopGap to other active wedges\n",
    "            for nWW in range(nWedges):  #time to make adjustments in target wedge pops based on boundary fails\n",
    "                if nWW != int(nWedges/2) or oppFlag == 0 :  #excluding flagged opposite wedge as a receiver\n",
    "                    targetWedgePop[nWW] += sumWedgePopGapChange/float(nReceivingWedges)\n",
    "\n",
    "        # *** NEW 1/19/22 CODE TO ADJUST WEDGE ANGLES WHEN A BOUNDARY ENCOUNTERED\n",
    "        if (nActiveWedges == nWedges or nActiveWedges < nWedges - 2\n",
    "           or didWeRestart[t] == 1) :  #0 or 3+ over-boundary short wedges, or we've already adjusted wedge angles once\n",
    "            HDpop = np.sum(wedgePop) #Keep going with normal wedge growth and trim process\n",
    "        else :  # 1 OR 2 SHORTED WEDGES.  MAY WANT TO ALTER WEDGE ANGLES\n",
    "            didWeRestart[t] = 1  #to ensure we adjust wedge angles and target wedgePops at most once per tract\n",
    "            if (nActiveWedges == nWedges - 2) :  #exactly two wedges got shorted in this loop -- are they opposing?\n",
    "                oppW = int( (shortedWedge + nWedges/2) % nWedges)  #the index of wedge opposite the last shorted wedge\n",
    "                if (isOverEdge[oppW] == 0) :\n",
    "                    print(\"we have 2 non-opposing shorted wedges for tract no\",t)\n",
    "                    totalLiveAngle = 2.*pi - np.sum(isOverEdge)*avgWedgeAngle  #avail angle to divvy among live wedges  \n",
    "                    for nW in range (nWedges) : #Decrease wedge angles opposite shorted wedges via a complex weighting\n",
    "                        if isOverEdge[nW] == 0 :\n",
    "                            oppW = int( (nW + nWedges/2) % nWedges) \n",
    "                            angleWeight = (np.sum(wedgePopGap)-wedgePopGap[oppW])/np.sum(wedgePopGap)/(nActiveWedges-1)\n",
    "                            wedgeAngle[nW] = angleWeight * totalLiveAngle  \n",
    "                else : #shorted wedges ARE opposing\n",
    "                    print(\"we have 2 OPPOSING shorted wedges for tract no\",t) # no wedge-angle adjustment in this case\n",
    "                    #wedgeAngle=[avgWedgeAngle]*nWedges  #comment this out, no change\n",
    "            else: # a single shorted wedge (over boundary).  COMPLETELY RESTART wedge growth process\n",
    "                shortW = shortedWedge #Next dozen lines: convoluted code to find angle to closest boundary point\n",
    "                #print(\"1 wedge over map boundary for tract\",t,\"at loop, wedgePop\",tractLoopCounter[t],wedgePop[shortW] )\n",
    "                shortedPoly = Polygon([tractCP, pt2[shortW],pt3[shortW] ])\n",
    "                MAPedge = shortedPoly.intersection(MAP.exterior) #true state boundary line where wedge crossed it\n",
    "                minDistance = max(tractCP.distance(MAPedge),tinyR)  #closest distance to edge where wedge hit the boundary\n",
    "                edgeCircle = tractCP.buffer(1.01*minDistance)  #build a circle a little bigger than this distance\n",
    "                #  1.001 is not big enough; will occasionally not intersect\n",
    "                closeArea = edgeCircle.intersection(MAPedge)\n",
    "                counter = 0.\n",
    "                maxCounter = 10. #give up after 10 tries\n",
    "                while closeArea.is_empty :  # protect against missing the map boundary somehow\n",
    "                    print(\"need to widen edge circle beyond\",minDistance, \"for tract (x,y)=(\",tractCP.x,tractCP.y)\n",
    "                    minDistance = minDistance * 1.1\n",
    "                    edgeCircle = tractCP.buffer(minDistance)  #widen the circle\n",
    "                    closeArea = edgeCircle.intersection(MAPedge)\n",
    "                    counter += 1\n",
    "                    if counter >= maxCounter: #not finding map edge intersection.  Try another way\n",
    "                        print(\"did not find boundary with circle approach.  Brute-force it.\")\n",
    "                        minDistance = tractCP.distance(MAP.exterior)\n",
    "                        edgeCircle = tractCP.buffer(1.01*minDistance)\n",
    "                        closeArea = edgeCircle.intersection(MAP.exterior)                        \n",
    "            \n",
    "                closePoint = closeArea.centroid  # this is a point very close to the closest beeline from tract to map edge\n",
    "                #print(closePoint,tractCP, \"are boundary point and tract center point\")\n",
    "                x1 = closePoint.x\n",
    "                x2 = tractCP.x  #debugging\n",
    "                dx = closePoint.x - tractCP.x\n",
    "                dy = closePoint.y - tractCP.y\n",
    "                exitAngle = pi/2. * np.sign(dy)  #default in case dx=0\n",
    "                if (dx != 0 ):\n",
    "                    exitAngle = math.atan(dy/dx)  #this is the angle from the x-axis to the exit beeline\n",
    "                    if dx < 0 :  #use complementary atan solution; boundary is west of tract centroid\n",
    "                        exitAngle = pi + exitAngle\n",
    "                angle0[t] = exitAngle # this reorients 0th wedge to face boundary's closest point               \n",
    "                # New 1/23/22 - let's estimate wedgePopGap at ideal orientation, normal angle   # ****************\n",
    "                wedgeAngle1 = exitAngle - 0.5*avgWedgeAngle\n",
    "                wedgeAngle2 = exitAngle + 0.5*avgWedgeAngle\n",
    "                maxR = max(stateWidth,stateHeight) #ensuring we make a big enough wedge\n",
    "                wedgePt1 = tractCP\n",
    "                wedgePt2 = Point(tractCP.x+maxR*math.cos(wedgeAngle1),  tractCP.y+maxR*math.sin(wedgeAngle1) )\n",
    "                wedgePt3 = Point(tractCP.x+maxR*math.cos(wedgeAngle2), tractCP.y+maxR*math.sin(wedgeAngle2) )\n",
    "                wedgePoly = Polygon([ wedgePt1, wedgePt2, wedgePt3 ])\n",
    "                minWedgePop[t] = 0. #the wedgePop of the shorted wedge if we re-orient but don't adjust angles\n",
    "                usedTract = [0]*nTracts  #rezero lists of tracts and precincts that could straddle multiple grids\n",
    "                for nG in range(nGrids) :  # loop over ACTIVE grids to look for intersecting tracts\n",
    "                    gridIntersxn = gridGeom[nG].intersection(wedgePoly)\n",
    "                    if (gridIntersxn.area > 0) :  #this grid is RELEVANT to this wedge\n",
    "                        for tt in range(nGridTracts[nG]) : #look for intersxns with all tracts in this grid\n",
    "                            nTT = gridTractNo[nG][tt] #shorthand for this tract's global tract no\n",
    "                            if(usedTract[nTT] == 0) :  #Did we not already look at this tract in another grid list?\n",
    "                                usedTract[nTT] = 1  #well, now we have!  Probe intersection with wedge\n",
    "                                overlap = tractGeom[nTT].intersection(wedgePoly).area\n",
    "                                if overlap > 0 :\n",
    "                                    fracArea = overlap/tractArea[nTT]\n",
    "                                    minWedgePop[t]  += fracArea*tractPop[nTT]  #always positive (used in density calc)\n",
    "                #print(\"the minimum shorted Wedge Pop for tract {0} is {1}\".format(t,minWedgePop[t]) )  #debug\n",
    "                #printAngle[t] = round(exitAngle*180./pi,4) #for debugging\n",
    "                printDist = round(minDistance,4)\n",
    "                #print(t,\"(\",tractCP.x,tractCP.y,\")\",printAngle,printDist,\"t,tract(x,y),exitAngle,dist\")\n",
    "                # ********************************************************************\n",
    "                # assign new wedge angles.  The two wide angles face toward and away from nearest boundary\n",
    "                #ratio = wedgePopGap[shortW]/ (avgDistrictPop/nWedges)  #0-1; this is degree of shortness\n",
    "                ratio = 1. - minWedgePop[t]/ (avgDistrictPop/nWedges)  # *** UPDATED\n",
    "                # printWedgePopGap[t] = wedgePopGap[shortW]\n",
    "                wideAngle = (1. + coeff1 * ratio + coeff2 * ratio*ratio)*avgWedgeAngle #HERE, WE ADJUST ANGLES\n",
    "                wideAngle = min(wideAngle, maxWideAngle*pi) #set an upper limit\n",
    "                thinAngle = (2.*pi - 2.*wideAngle)/(nWedges - 2.)  #other wedges equally angle-compressed\n",
    "                #if (t % 9 == 0):  #occasional print\n",
    "                    #print(\"tract,wide, thin angles are \",t,round(180/pi*wideAngle,4),round(180/pi*thinAngle,4) )\n",
    "                for nW in range(nWedges) :\n",
    "                    if (nW == 0 or nW == int(nWedges/2) ) : #assign these two as shorted wedge and its opposite\n",
    "                        wedgeAngle[nW] = wideAngle\n",
    "                    else :\n",
    "                        wedgeAngle[nW] = thinAngle\n",
    "                #** COMPLETELY RESTART WEDGE GROWTH PROCESS FROM INITIAL PIZZA SLICES, NOW RE-ORIENTED\n",
    "                loopTractUse = [0.] * nTracts  # reset as we are starting over\n",
    "                loopPrecinctUse = [0.]* nPrecincts\n",
    "                HDpop = 0.\n",
    "                nActiveWedges = nWedges\n",
    "                targetWedgePop = [avgDistrictPop/nWedges] * nWedges\n",
    "                oldR = [0.]*nWedges   #for remembering last loop's wedge radius  \n",
    "                currentR = [tinyR]*nWedges                \n",
    "                old_dr = [tinyR]*nWedges  #this will track the last radial step (to help convergence)\n",
    "                max_dr = [globalMax_dr]*nWedges  #reset max step size\n",
    "                wedgePop = [0.]*nWedges\n",
    "                oldWedgePop = [0.]*nWedges #wedge pop from previous round\n",
    "                wedgePopGap = [0.]*nWedges\n",
    "                isOverEdge = [0] *nWedges\n",
    "                isSatisfied = [0] *nWedges\n",
    "                yoyoCount = [0] *nWedges #just in case we missed this earlier\n",
    "                wedgeMaxR = [0.] * nWedges #resetting\n",
    "                angle[0] = angle0[t] - 0.5*wideAngle  #the 0th wedge always faces the boundary\n",
    "                angle2[0] = angle[0] + wedgeAngle[0]\n",
    "                for nW in range(nWedges) :\n",
    "                    if (nW == 0):\n",
    "                        angle[nW] = angle0[t] - 0.5*wideAngle  #we have to start somewhere :-)\n",
    "                    else :\n",
    "                        angle[nW] = angle2[nW-1]\n",
    "                    angle2[nW] = angle[nW]+wedgeAngle[nW]      \n",
    "                    pt1[nW] = tractCP\n",
    "                    pt2[nW] = Point(tractCP.x+tinyR*math.cos(angle[nW]),  tractCP.y+tinyR*math.sin(angle[nW]) )\n",
    "                    pt3[nW] = Point(tractCP.x+tinyR*math.cos(angle2[nW]), tractCP.y+tinyR*math.sin(angle2[nW]) )\n",
    "                    wedgePoly = Polygon([pt1[nW], pt2[nW], pt3[nW] ])\n",
    "                    wedgePop[nW] = tractPop[t]* wedgePoly.area/max(tractArea[t],minTractArea)\n",
    "                HDpop = np.sum(wedgePop)   #** END OF RESTART BLOCK.  RE-ENTER MAIN LOOP FOR THIS TRACT\n",
    "                      \n",
    "        # **** BELOW IS TO CORRECT FOR NONCONVERGENCE *****\n",
    "        if (tractLoopCounter[t] > nLoopPrint):  #may be becoming unstable. Alert user,    #and (don't) reduce gain\n",
    "            strPop = str(round(HDpop,2))\n",
    "            strWdg = \"Overedge?\"\n",
    "            strSat = \"Satisfied?\"\n",
    "            strYoyo = \"yoyo?\"                \n",
    "            strTWP_dr = \"tWP,dr\"\n",
    "            for nWW in range(nWedges) :\n",
    "                strPop = strPop + \", \"+str(round(wedgePop[nWW],1) )\n",
    "                strWdg = strWdg +str(isOverEdge[nWW])+\", \"\n",
    "                strSat = strSat +str(isSatisfied[nWW])\n",
    "                strYoyo = strYoyo + str(yoyoCount[nWW])\n",
    "                strTWP_dr = strTWP_dr + \", \"+str(round(targetWedgePop[nWW],1) )+\",\"+str(round(old_dr[nWW],4) )\n",
    "            print(\"loop{0}, tr{1},wedgePops{2}, {3},{4},{5} \".format(tractLoopCounter[t],t,strPop,strWdg,strSat,strYoyo) )\n",
    "            print(\"   targetWP, latest drx4 are\",strTWP_dr)\n",
    "\n",
    "        if (tractLoopCounter[t] > nLoopSuperPrint) :\n",
    "            for nWW in range(nWedges):                \n",
    "                print(\"wedge no, currentR,oldWedgePop, wedgePop, overEdge?\",nWW,str(round(currentR[nWW],5)), \n",
    "                      str(round(oldWedgePop[nWW],4)), str(round(wedgePop[nWW],4)),isOverEdge[nWW])   #debug\n",
    "                x, y = printPoly[nWW].exterior.xy     #wedge debugging .....\n",
    "                plt.plot(x, y, c=(0.1, 0.2, 0.02+float(nWW)/nWedges) )\n",
    "            plt.show()\n",
    "        if(tractLoopCounter[t] >= nGiveUp):\n",
    "            print(\"I looped {0} times on tract {1}, giving up w pop {2}\".format(nGiveUp,t,HDpop) )\n",
    "            wrongPop[t] = HDpop  #this will flag this HD as triaged\n",
    "            HDpop = avgDistrictPop  #white lie to kick out of loop\n",
    "        # *** END OF TRIAGE FOR NONCONVERGENCE\n",
    "        \n",
    "    # END OF WHILE LOOP --> we are within tolerance of avgDistrictPop. Finalize this tract's Home District stats\n",
    "    for nTT in range (nTracts) :\n",
    "        tractUse[nTT] += loopTractUse[nTT]\n",
    "    totGOP = 0.\n",
    "    totVote = 0.\n",
    "    totVAP = 0.\n",
    "    totHisp = 0.\n",
    "    totBlack = 0.  #zero these out prior to summing over final wedges\n",
    "    usedTract = [0]*nTracts  #rezero lists of tracts and precincts that could straddle multiple grids\n",
    "    usedPrecinct = [0]*nPrecincts\n",
    "\n",
    "    if (tractPop[t] < minTractPop or tractArea[t] == 0 or isSkippedTract[t] == 1): \n",
    "        #we bypassed the big loop; this tract is inconsequential\n",
    "        HDvPop[t] = HDpop  #a white lie\n",
    "        HDweight[t] = 0.000001  #to suppress this in total stats\n",
    "    else :\n",
    "        HDvPop[t] = np.sum(wedgePop)\n",
    "        # HDvHisp[t] = np.sum(wedgeHisp)/np.sum(wedgePop)  #3/2/22 - move to final wedge calcs\n",
    "        # HDvBlack[t] = np.sum(wedgeBlack)/np.sum(wedgePop)  #3/2/22 - move to final wedge calcs\n",
    "        HDweight[t] = tractPop[t]/np.sum(tractPop)\n",
    "        nearEdge[t] = nWedges - nActiveWedges  #flagging the number of wedges that were not completely pop-filled\n",
    "        centerPt = tractCP\n",
    "        outerPt2 = Point(tractCP.x+currentR[0]*math.cos(angle[0]), tractCP.y+currentR[0]*math.sin(angle[0]) )\n",
    "        outerPt3 = Point(tractCP.x+currentR[0]*math.cos(angle2[0]),tractCP.y+currentR[0]*math.sin(angle2[0]) )\n",
    "        HDpolly = Polygon([centerPt,outerPt2,outerPt3])   #initiate a polygon that will be the home district\n",
    "        for nW in range(nWedges):\n",
    "            HDradius[t][nW] = currentR[nW]\n",
    "            HDangle[t][nW] = angle[nW]\n",
    "            \n",
    "        for nW in range(1,nWedges):  #save final geometry, compute minority and partisan stats\n",
    "            cR = currentR[nW] #shorthand\n",
    "            outerPt2 = Point(tractCP.x+cR*math.cos(angle[nW]), tractCP.y+cR*math.sin(angle[nW]) )\n",
    "            outerPt3 = Point(tractCP.x+cR*math.cos(angle2[nW]),tractCP.y+cR*math.sin(angle2[nW]) )\n",
    "            HDpolly =  HDpolly.union( Polygon([centerPt,outerPt2,outerPt3]) )  #add this wedge to HD district polygon\n",
    "        HDpolly = HDpolly.intersection(MAP)  #exclude map's convex hull and buffer, just the original union of precincts\n",
    "        HDarea[t] = HDpolly.area  #for stats, final Home District area\n",
    "        for nG in range(nGrids) :  # ID the ACTIVE grids to look for intersecting precincts\n",
    "            gridIntersxn = gridGeom[nG].intersection(HDpolly)\n",
    "            if (gridIntersxn.area > 0) :  #this grid is RELEVANT to the final Home District\n",
    "                for tt in range(nGridTracts[nG]):\n",
    "                    nTT = gridTractNo[nG][tt]\n",
    "                    if usedTract[nTT] == 0: #only examine tracts that have not already been called for intersection\n",
    "                        usedTract[nTT] == 1  #this tract has now been called \n",
    "                        overlap = tractGeom[nTT].intersection(HDpolly).area\n",
    "                        if overlap > 0 :\n",
    "                            fracArea = overlap/tractArea[nTT]\n",
    "                            totVAP += fracArea*tractVAP[nTT]\n",
    "                            totHisp += fracArea*tractHisp[nTT]\n",
    "                            totBlack += fracArea*tractBlack[nTT]\n",
    "                        \n",
    "                for pp in range(nGridPrecincts[nG]): #scanning the list of precincts in this active grid\n",
    "                    nPP = gridPrecinctNo[nG][pp]\n",
    "                    if usedPrecinct[nPP] == 0  :\n",
    "                        usedPrecinct[nPP] = 1  #don't double up on precinct intersection\n",
    "                        overlap = vtdGeom[nPP].intersection(HDpolly).area\n",
    "                        if overlap > 0 :\n",
    "                            fracArea = overlap/vtdArea[nPP]\n",
    "                            totGOP += fracArea*vtdGOP[nPP]*vtdPop[nPP]\n",
    "                            totVote += fracArea*vtdPop[nPP]\n",
    "                            loopPrecinctUse[nPP] += overlap/vtdArea[nPP] *tractPop[t]/avgDistrictPop\n",
    "        HDvHisp[t] = totHisp/totVAP\n",
    "        HDvBlack[t] = totBlack/totVAP\n",
    "        HDvGOP[t] = totGOP / totVote\n",
    "        for nPP in range (nPrecincts) :\n",
    "            precinctUse[nPP] += loopPrecinctUse[nPP] #add to global use for this precinct\n",
    "            \n",
    "        \n",
    "\n",
    "    # end of loop on this tract\n",
    "for t in range(nTracts):\n",
    "    if(wrongPop[t] > 0):\n",
    "        HDvPop[t] = wrongPop[t]  #undo the lie that got us out of the loop early\n",
    "HDsumWeight = np.sum(HDweight)\n",
    "print(\"Sum of weights over all precinct home districts should have been 1.000, but was \",HDsumWeight)\n",
    "print(\"Average and max number of wedgePop loops per tract were: \",np.average(tractLoopCounter),np.max(tractLoopCounter) )\n",
    "print(\"min,average,max of Home District areas were: \",np.min(HDarea),np.average(HDarea),np.max(HDarea) )\n",
    "stateGOP2 = 0.\n",
    "stateHisp2 = 0.\n",
    "stateBlack2 = 0.\n",
    "for t in range(nTracts):\n",
    "    HDweight[t] = HDweight[t]/HDsumWeight   #renormalizing\n",
    "    stateGOP2 += HDweight[t]*HDvGOP[t]\n",
    "    stateBlack2 += HDweight[t]*HDvBlack[t]\n",
    "    stateHisp2 += HDweight[t]*HDvHisp[t]\n",
    "statePop = np.sum(tractPop)\n",
    "print(\"calculated statewide vote was {0}, should have been {1}\".format(stateGOP2, stateGOP) )\n",
    "print(\"calcd statewide Hispanic pop was {0}, should have been {1}\".format(stateHisp2, np.sum(tractHisp)/stateVAP ) )\n",
    "print(\"calcd statewide Black pop was {0}, should have been {1}\".format(stateBlack2, np.sum(tractBlack)/stateVAP ) )\n",
    "print(\"fraction of HDs that with altered wedge angles near boundaries = \",np.sum(didWeRestart)/nTracts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "24a347a9-8220-4c1a-bcfc-14923f1f98f7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sum of weights over all precinct home districs should have been 1.000, but was  1.0000118982535453\n",
      "Average and max number of wedgePop loops per tract were:  6.752525252525253 21.0\n",
      "min,average,max of Home District areas were:  0.0 0.7732862927692049 2.7146550152660796 for  OH\n"
     ]
    }
   ],
   "source": [
    "#use this line to document progress\n",
    "# start OH HD1 6:17, end 8:11\n",
    "print(\"Sum of weights over all precinct home districs should have been 1.000, but was \",HDsumWeight)\n",
    "print(\"Average and max number of wedgePop loops per tract were: \",np.average(tractLoopCounter),np.max(tractLoopCounter) )\n",
    "print(\"min,average,max of Home District areas were: \",np.min(HDarea),np.average(HDarea),np.max(HDarea),\"for \",STATE )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "72247942-899a-4ab2-9796-239aa1e524fb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OH 13Mar\n"
     ]
    }
   ],
   "source": [
    "date = \"13Mar\"\n",
    "print(STATE, date)  #check that I will not overwrite existing file :-)\n",
    "tractCPx = [0.]*nTracts\n",
    "tractCPy = [0.]*nTracts\n",
    "tractNo = [0.]*nTracts\n",
    "for t in range(nTracts):\n",
    "    tractCPx[t]=tractGeom[t].centroid.x\n",
    "    tractCPy[t]=tractGeom[t].centroid.y\n",
    "    tractNo[t]=t"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "c55ac5fd-7402-47b9-9093-10b9fe0912b6",
   "metadata": {},
   "outputs": [],
   "source": [
    "#LET'S WRITE AN OUTPUT FILE BEFORE WE FORGET :-)\n",
    "#convert HD wedge geometries to 1D arrays.  BELOW IS FOR 4-WEDGE.  CAN AUGMENT FOR 6-WEDGE\n",
    "HDangle0 = [0.]*nTracts\n",
    "HDradius0 = [0.]*nTracts\n",
    "HDangle1 = [0.]*nTracts\n",
    "HDradius1 = [0.]*nTracts\n",
    "HDangle2 = [0.]*nTracts\n",
    "HDradius2 = [0.]*nTracts\n",
    "HDangle3 = [0.]*nTracts\n",
    "HDradius3 = [0.]*nTracts\n",
    "for t in range(nTracts):\n",
    "    HDangle0[t] = HDangle[t][0]\n",
    "    HDradius0[t] = HDradius[t][0]\n",
    "    HDangle1[t] = HDangle[t][1]\n",
    "    HDradius1[t] = HDradius[t][1]\n",
    "    HDangle2[t] = HDangle[t][2]\n",
    "    HDradius2[t] = HDradius[t][2]\n",
    "    HDangle3[t] = HDangle[t][3]\n",
    "    HDradius3[t] = HDradius[t][3]\n",
    "# now convert output to pandas dataframe and export\n",
    "\n",
    "paramList = [\"STATE\",\"stateGOP\",\"nDistricts\",\"nTracts\",\"nPrecincts\",\"nWedges\",\"popn-toler\",\n",
    "             \"gain\",\"coeff1\",\"coeff2\"]\n",
    "paramValues = [STATE,stateGOP, nDistricts, nTracts,nPrecincts,nWedges, toler, gain, coeff1,coeff2]\n",
    "for i in range(nTracts-len(paramList)):\n",
    "    paramList.append(\".\")\n",
    "    paramValues.append(-99)  #so all columns have same number of entries, even the parameter list\n",
    "df = pd.DataFrame( {\"paramList\": paramList,\"paramValues\":paramValues,\"HD-pop\":HDvPop,\"HDvGOP\":HDvGOP,\"HDvHisp\":HDvHisp,\n",
    "                    \"HDvBlack\":HDvBlack,\"HDwt\":HDweight,\"HDarea\":HDarea, \"HDangle0\":HDangle0, \"HDangle1\":HDangle1,\n",
    "                    \"HDangle2\":HDangle2,\"HDangle3\":HDangle3,\"HDradius0\":HDradius0,\"HDradius1\":HDradius1,\n",
    "                    \"HDradius2\":HDradius2,\"HDradius3\":HDradius3,\"startAngle\":angle0,\"tractNo\":tractNo,\n",
    "                    \"Loops\":tractLoopCounter,\"tractPop\":tractPop,\"tractHisp\":tractHisp,\"tractBlack\":tractBlack,\n",
    "                    \"centroid x\":tractCPx,\"centroid y\":tractCPy, \"tractUse\":tractUse,\"nearEdge\":nearEdge,\n",
    "                    \"wrongPop\":wrongPop,\"Restart?\":didWeRestart} ) \n",
    "\n",
    "outname = STATE+str(nDistricts)+\"HD1tol\"+str(toler)+\"nW\"+str(nWedges)+date+\".csv\"\n",
    "outpath = \"state_HD_output/\"+outname\n",
    "df.to_csv(outpath)\n",
    "precinctNo = [0.]*nPrecincts\n",
    "vtdX = [0.]*nPrecincts\n",
    "vtdY = [0.]*nPrecincts\n",
    "for p in range(nPrecincts):\n",
    "    precinctNo[p]=p\n",
    "    vtdX[p] = vtdGeom[p].centroid.x\n",
    "    vtdY[p] = vtdGeom[p].centroid.y\n",
    "df2 = pd.DataFrame( {\"precinctNo\":precinctNo,\"precinctPop\":vtdPop,\"precUse\":precinctUse, \"vtdX\":vtdX, \"vtdY\":vtdY} )\n",
    "outname2 = STATE+date+\"_VTD_tol\"+str(toler)+\"nW\"+str(nWedges)+\".csv\"\n",
    "outpath = \"state_HD_output/\"+outname2\n",
    "df2.to_csv(outpath)  #currently, I'm outputting the precinct use stats to a separate file."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "c4449da0-47a9-40cc-a585-8288447290e6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "we will redo tract numbers  [0]\n"
     ]
    }
   ],
   "source": [
    "# Looking for nonconvergers ...  Run even if none observed, just to check  \n",
    "redo = [0]\n",
    "counter = 0.\n",
    "for t in range (nTracts) :\n",
    "    if wrongPop[t] > 0 :\n",
    "        ratio = round(wrongPop[t]/avgDistrictPop,2)\n",
    "        tractX = tractGeom[t].centroid.x\n",
    "        tractY = tractGeom[t].centroid.y        \n",
    "        print(t, ratio,\"(\",tractX,tractY,\")\",HDvGOP[t], \"t, pop/target,(x,y), pctR\")\n",
    "        if (ratio < 0.9 or ratio > 1.1) :  #these we will redo\n",
    "            plt.text(tractGeom[t].centroid.x, tractGeom[t].centroid.y,ratio, fontsize=14)\n",
    "            if counter == 0 :  #first redo\n",
    "                redo = [t]\n",
    "            else :\n",
    "                redo.append(t)\n",
    "            counter+= 1\n",
    "        else: #show these milder offenders on the map in a smaller font            \n",
    "            plt.text(tractGeom[t].centroid.x, tractGeom[t].centroid.y,ratio, fontsize=9)\n",
    "\n",
    "x,y = tractMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"purple\")\n",
    "plt.show()\n",
    "print(\"we will redo tract numbers \",redo)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "be6e965b-4ca8-4af2-8031-63132fbb939d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "447 0.7937394452568969 593 pop,GOP 0.7133220910623946\n",
      "1176 0.7055982448128362 1031 pop,GOP 0.7381183317167799\n",
      "1204 0.7858094906299005 1039 pop,GOP 0.7083734359961501\n",
      "1206 0.7700602100141144 672 pop,GOP 0.6979166666666666\n",
      "1207 0.7178128208838769 927 pop,GOP 0.7108953613807982\n",
      "1208 0.685863877356525 792 pop,GOP 0.7727272727272727\n",
      "1212 0.7567075103128369 564 pop,GOP 0.7358156028368794\n",
      "1214 0.7317108559095533 1054 pop,GOP 0.7267552182163188\n",
      "1227 0.7310924872130125 931 pop,GOP 0.682062298603652\n",
      "1229 0.6914977560149843 716 pop,GOP 0.7276536312849162\n",
      "1231 0.7625775171026433 409 pop,GOP 0.6381418092909535\n",
      "1248 0.7780810178584103 887 pop,GOP 0.7395715896279594\n",
      "1255 0.7558200184361817 1128 pop,GOP 0.7845744680851063\n",
      "1256 0.7776507914521975 859 pop,GOP 0.6949941792782305\n",
      "1295 0.7006155612417211 578 pop,GOP 0.7301038062283737\n",
      "1307 0.7224270303109375 1249 pop,GOP 0.799839871897518\n",
      "1321 0.7705869468694839 991 pop,GOP 0.6841574167507568\n",
      "1323 0.7888042139589305 588 pop,GOP 0.7670068027210885\n",
      "1348 0.744860845642739 1093 pop,GOP 0.6697163769441903\n",
      "1368 0.6832923546795024 912 pop,GOP 0.6469298245614035\n",
      "1373 0.7227954011223713 763 pop,GOP 0.601572739187418\n",
      "1376 0.7074517858190685 643 pop,GOP 0.6314152410575428\n",
      "1402 0.7329974575982509 907 pop,GOP 0.7221609702315325\n",
      "1407 0.7918530593243004 728 pop,GOP 0.6909340659340659\n",
      "1411 0.702670274104629 1238 pop,GOP 0.8061389337641357\n",
      "1428 0.6932727698344282 396 pop,GOP 0.7474747474747475\n",
      "1432 0.7874013304112687 804 pop,GOP 0.6417910447761194\n",
      "1439 0.7441924880735618 1074 pop,GOP 0.6908752327746741\n",
      "1459 0.751503091027023 855 pop,GOP 0.6818713450292397\n",
      "1462 0.6974907049777341 496 pop,GOP 0.7883064516129032\n",
      "1474 0.7392770527653436 1109 pop,GOP 0.7619477006311993\n",
      "1485 0.748938509903699 970 pop,GOP 0.7865979381443299\n",
      "1487 0.7962473454404451 1278 pop,GOP 0.594679186228482\n",
      "1492 0.7070496749219264 652 pop,GOP 0.745398773006135\n",
      "1497 0.6965207789466278 978 pop,GOP 0.7607361963190185\n",
      "1513 0.7260458389241815 1296 pop,GOP 0.6658950617283951\n",
      "1523 0.7895745432442695 665 pop,GOP 0.8030075187969925\n",
      "1525 0.6835443175604164 333 pop,GOP 0.7627627627627628\n",
      "1531 0.6973218644377006 845 pop,GOP 0.7775147928994083\n",
      "1535 0.706629387475241 1037 pop,GOP 0.7184185149469624\n",
      "1543 0.7212490386132253 613 pop,GOP 0.8156606851549756\n",
      "1549 0.7415781667059126 920 pop,GOP 0.7543478260869565\n",
      "1550 0.6939670038309397 624 pop,GOP 0.7323717948717948\n",
      "1555 0.7747686731455232 804 pop,GOP 0.7412935323383084\n",
      "1557 0.7924532362571511 935 pop,GOP 0.6770053475935829\n",
      "1564 0.7655123509870374 815 pop,GOP 0.7153374233128834\n",
      "1575 0.7811834639569998 1010 pop,GOP 0.7267326732673267\n",
      "1579 0.6921495003498811 1076 pop,GOP 0.7592936802973977\n",
      "1582 0.7294621520644224 602 pop,GOP 0.7724252491694352\n",
      "1603 0.7799097789734598 857 pop,GOP 0.6581096849474912\n",
      "1646 0.699594265715012 809 pop,GOP 0.761433868974042\n",
      "1651 0.7236319293767092 885 pop,GOP 0.735593220338983\n",
      "1660 0.7822683011908449 494 pop,GOP 0.8360323886639676\n",
      "1661 0.7459468367648988 330 pop,GOP 0.8212121212121212\n",
      "1677 0.7969089573970294 339 pop,GOP 0.7079646017699115\n",
      "1696 0.7810795603304111 491 pop,GOP 0.6619144602851323\n",
      "1717 0.7754102770477639 964 pop,GOP 0.6763485477178424\n",
      "1719 0.7816082651167908 447 pop,GOP 0.09843400447427293\n",
      "1720 0.7937773732367235 255 pop,GOP 0.3686274509803922\n",
      "1721 0.7946020170449478 417 pop,GOP 0.37889688249400477\n",
      "1724 0.7435621566889229 614 pop,GOP 0.13192182410423453\n",
      "1763 0.7499094440152021 442 pop,GOP 0.49095022624434387\n",
      "1773 0.7519207437061749 514 pop,GOP 0.28599221789883267\n",
      "1774 0.7424391877492509 440 pop,GOP 0.3431818181818182\n",
      "1775 0.7428860353295604 343 pop,GOP 0.27113702623906705\n",
      "1776 0.7304893734362642 388 pop,GOP 0.3917525773195876\n",
      "1788 0.752003260929846 463 pop,GOP 0.6220302375809935\n",
      "1791 0.7265789683777312 274 pop,GOP 0.5693430656934306\n",
      "1805 0.7033365318942686 766 pop,GOP 0.6514360313315927\n",
      "1806 0.7179843627952355 405 pop,GOP 0.6271604938271605\n",
      "1825 0.7776886659939279 1041 pop,GOP 0.6695485110470701\n",
      "1827 0.7924603628790126 578 pop,GOP 0.5622837370242214\n",
      "1828 0.7982438871939807 700 pop,GOP 0.5857142857142857\n",
      "1830 0.7148235754903359 538 pop,GOP 0.620817843866171\n",
      "1831 0.7942836151085356 791 pop,GOP 0.683944374209861\n",
      "1833 0.7538231738608243 512 pop,GOP 0.091796875\n",
      "1834 0.7815523076251497 390 pop,GOP 0.15897435897435896\n",
      "1836 0.7986091740924189 459 pop,GOP 0.32679738562091504\n",
      "1837 0.7761110075771278 528 pop,GOP 0.42234848484848486\n",
      "1853 0.7269180264560704 642 pop,GOP 0.6588785046728972\n",
      "1854 0.7116401443143553 856 pop,GOP 0.5712616822429907\n",
      "1884 0.7913893010509258 642 pop,GOP 0.6121495327102804\n",
      "1886 0.7797123075556616 670 pop,GOP 0.5925373134328358\n",
      "1888 0.730483985787924 681 pop,GOP 0.7738619676945668\n",
      "1890 0.7455190816322479 486 pop,GOP 0.6502057613168725\n",
      "1891 0.6984287239559214 655 pop,GOP 0.7129770992366412\n",
      "1892 0.698219884093922 583 pop,GOP 0.6878216123499142\n",
      "1903 0.7890680971990063 731 pop,GOP 0.6347469220246238\n",
      "1908 0.7432068422175143 441 pop,GOP 0.5374149659863946\n",
      "1909 0.7184434139844825 667 pop,GOP 0.5592203898050975\n",
      "1910 0.7330989676266464 680 pop,GOP 0.5926470588235294\n",
      "1911 0.7247342792632575 566 pop,GOP 0.46996466431095407\n",
      "1912 0.7556116310354225 695 pop,GOP 0.5985611510791367\n",
      "1913 0.7510594492429415 413 pop,GOP 0.4939467312348668\n",
      "1914 0.7290479526916472 485 pop,GOP 0.6020618556701031\n",
      "1915 0.7423684383442348 568 pop,GOP 0.721830985915493\n",
      "1916 0.7024078101665711 502 pop,GOP 0.7231075697211156\n",
      "1918 0.7809185752434415 701 pop,GOP 0.3908701854493581\n",
      "1919 0.7613502904089692 904 pop,GOP 0.5066371681415929\n",
      "1924 0.7827085192510111 716 pop,GOP 0.2751396648044693\n",
      "1934 0.7447030584398581 856 pop,GOP 0.6670560747663551\n",
      "1935 0.7293349914871456 631 pop,GOP 0.6830427892234548\n",
      "1967 0.763176948435256 813 pop,GOP 0.5953259532595326\n",
      "1968 0.7814474385032614 745 pop,GOP 0.5718120805369128\n",
      "1970 0.7257131882027339 754 pop,GOP 0.6962864721485411\n",
      "1971 0.7441357068308917 777 pop,GOP 0.6435006435006435\n",
      "1972 0.7168432980890836 850 pop,GOP 0.6082352941176471\n",
      "1973 0.7364352976512086 440 pop,GOP 0.5363636363636364\n",
      "1974 0.7443869866295568 692 pop,GOP 0.5592485549132948\n",
      "1975 0.7330196345020346 481 pop,GOP 0.577962577962578\n",
      "1976 0.7297231569088749 472 pop,GOP 0.815677966101695\n",
      "1977 0.7228225490204039 464 pop,GOP 0.7241379310344828\n",
      "1978 0.779013945842785 664 pop,GOP 0.46987951807228917\n",
      "1984 0.7942350128083562 822 pop,GOP 0.3442822384428224\n",
      "1985 0.792573075125281 974 pop,GOP 0.44763860369609854\n",
      "2000 0.7890571109685239 751 pop,GOP 0.7350199733688415\n",
      "2007 0.7047954259309003 732 pop,GOP 0.7144808743169399\n",
      "2008 0.7755302666422534 914 pop,GOP 0.6356673960612691\n",
      "2033 0.7755990702290556 495 pop,GOP 0.6404040404040404\n",
      "2034 0.7861726357846597 782 pop,GOP 0.5626598465473146\n",
      "2095 0.7123061381074086 593 pop,GOP 0.5531197301854974\n",
      "2096 0.6950150426931379 530 pop,GOP 0.40943396226415096\n",
      "2097 0.6848602593222587 615 pop,GOP 0.616260162601626\n",
      "2115 0.7640807809923122 414 pop,GOP 0.321256038647343\n",
      "2116 0.7419589274383894 285 pop,GOP 0.27017543859649124\n",
      "2117 0.7393756782980511 323 pop,GOP 0.42105263157894735\n",
      "2118 0.7349341482533073 455 pop,GOP 0.4945054945054945\n",
      "2119 0.7181762723135111 371 pop,GOP 0.5094339622641509\n",
      "2122 0.7032371702013176 437 pop,GOP 0.6155606407322655\n",
      "2123 0.7122283333742001 319 pop,GOP 0.567398119122257\n",
      "2130 0.7713128435228359 1109 pop,GOP 0.6158701532912534\n",
      "2131 0.7951168110075896 372 pop,GOP 0.510752688172043\n",
      "2140 0.7831731575241487 489 pop,GOP 0.5173824130879345\n",
      "2141 0.7625901604769324 454 pop,GOP 0.4889867841409692\n",
      "2142 0.7328953510758621 198 pop,GOP 0.46464646464646464\n",
      "2143 0.787718885397545 382 pop,GOP 0.5104712041884817\n",
      "2144 0.786348755525672 480 pop,GOP 0.5291666666666667\n",
      "2145 0.7696215837013368 369 pop,GOP 0.5203252032520326\n",
      "2146 0.7713453605754318 594 pop,GOP 0.5471380471380471\n",
      "2147 0.7710278857253954 462 pop,GOP 0.525974025974026\n",
      "2148 0.7578214677883285 229 pop,GOP 0.4978165938864629\n",
      "2149 0.7596640480822188 341 pop,GOP 0.530791788856305\n",
      "2150 0.7402576052543213 326 pop,GOP 0.48773006134969327\n",
      "2156 0.7760381399464771 579 pop,GOP 0.11226252158894647\n",
      "2158 0.7874084555143875 358 pop,GOP 0.1005586592178771\n",
      "2161 0.7359044433438611 291 pop,GOP 0.4570446735395189\n",
      "2163 0.7894667617098189 938 pop,GOP 0.685501066098081\n",
      "2174 0.7968525410560539 332 pop,GOP 0.49698795180722893\n",
      "2178 0.7554262549317773 477 pop,GOP 0.5303983228511531\n",
      "2180 0.7515189400544403 347 pop,GOP 0.07492795389048991\n",
      "2283 0.7580341825347902 421 pop,GOP 0.7695961995249406\n",
      "2284 0.739922055173106 355 pop,GOP 0.8028169014084507\n",
      "2286 0.7934284901046614 674 pop,GOP 0.8353115727002968\n",
      "2303 0.7901903058134628 422 pop,GOP 0.7701421800947867\n",
      "2304 0.7915148300594125 431 pop,GOP 0.7842227378190255\n",
      "2305 0.7672357204736545 485 pop,GOP 0.8639175257731959\n",
      "2306 0.7666249812815994 321 pop,GOP 0.8161993769470405\n",
      "2587 0.7997944334827077 481 pop,GOP 0.7671517671517671\n",
      "2589 0.7623115463492445 615 pop,GOP 0.8\n",
      "2877 0.7723997663287756 668 pop,GOP 0.4505988023952096\n",
      "2898 0.7413602540585211 608 pop,GOP 0.4720394736842105\n",
      "2899 0.7266298397634549 540 pop,GOP 0.45925925925925926\n",
      "2900 0.695334468813441 524 pop,GOP 0.48854961832061067\n",
      "2903 0.7798765746821682 419 pop,GOP 0.18138424821002386\n",
      "2904 0.6921537127471624 551 pop,GOP 0.43920145190562615\n",
      "2905 0.7607596861332129 447 pop,GOP 0.3624161073825503\n",
      "2907 0.6766898945835206 419 pop,GOP 0.3532219570405728\n",
      "2909 0.7663966945193335 398 pop,GOP 0.0829145728643216\n",
      "2910 0.7649148266065872 216 pop,GOP 0.10648148148148148\n",
      "2911 0.6943762558996148 585 pop,GOP 0.49401709401709404\n",
      "2912 0.7092314080148931 566 pop,GOP 0.5618374558303887\n",
      "2915 0.7948960982421593 298 pop,GOP 0.1610738255033557\n",
      "2916 0.6557347487869722 560 pop,GOP 0.44107142857142856\n",
      "2917 0.7308202168961914 537 pop,GOP 0.4245810055865922\n",
      "2919 0.796478591856713 1028 pop,GOP 0.4571984435797665\n",
      "2925 0.65184524119108 716 pop,GOP 0.5153631284916201\n",
      "2927 0.7179854738682174 880 pop,GOP 0.5170454545454546\n",
      "2928 0.7030691625773939 681 pop,GOP 0.5168869309838473\n",
      "2929 0.7288638796960873 871 pop,GOP 0.4087256027554535\n",
      "2930 0.7243705598200957 782 pop,GOP 0.4859335038363171\n",
      "2932 0.7480357641116234 679 pop,GOP 0.4329896907216495\n",
      "2936 0.7685626200013215 670 pop,GOP 0.46417910447761196\n",
      "2948 0.7320204296366797 425 pop,GOP 0.47294117647058825\n",
      "2949 0.7639687783022133 467 pop,GOP 0.09207708779443255\n",
      "2950 0.7609096446652137 671 pop,GOP 0.3114754098360656\n",
      "2951 0.7424728344719651 600 pop,GOP 0.275\n",
      "2952 0.7266603211364591 604 pop,GOP 0.3526490066225166\n",
      "2953 0.7060158939402332 383 pop,GOP 0.3237597911227154\n",
      "2954 0.6591937878355001 773 pop,GOP 0.4489003880983182\n",
      "2959 0.7822937388855011 510 pop,GOP 0.39215686274509803\n",
      "2962 0.6622310399823843 535 pop,GOP 0.45607476635514016\n",
      "2963 0.7301991067509197 573 pop,GOP 0.33507853403141363\n",
      "2964 0.7399829287938702 520 pop,GOP 0.21923076923076923\n",
      "2969 0.7125250327064646 513 pop,GOP 0.3157894736842105\n",
      "2970 0.7086217941582497 394 pop,GOP 0.26649746192893403\n",
      "2971 0.7489965024146844 299 pop,GOP 0.046822742474916385\n",
      "2972 0.7395080825242135 377 pop,GOP 0.10875331564986737\n",
      "2989 0.7591912463925865 423 pop,GOP 0.06855791962174941\n",
      "2992 0.7091928246936686 537 pop,GOP 0.5065176908752328\n",
      "2994 0.7510422769279189 401 pop,GOP 0.1571072319201995\n",
      "2995 0.7481815219926158 327 pop,GOP 0.19571865443425077\n",
      "2996 0.737657691706404 491 pop,GOP 0.09368635437881874\n",
      "2997 0.7222582264865137 358 pop,GOP 0.14804469273743018\n",
      "2998 0.724835371265144 711 pop,GOP 0.47538677918424754\n",
      "2999 0.7685879501149305 593 pop,GOP 0.433389544688027\n",
      "3001 0.7686905717162767 240 pop,GOP 0.11666666666666667\n",
      "3004 0.6600342050596089 541 pop,GOP 0.49907578558225507\n",
      "3005 0.734451280067271 680 pop,GOP 0.48823529411764705\n",
      "3006 0.7478500568627644 591 pop,GOP 0.4500846023688663\n",
      "3007 0.7834925151732091 455 pop,GOP 0.12087912087912088\n",
      "3026 0.7583328516050579 787 pop,GOP 0.5031766200762389\n",
      "3027 0.7446696473127348 845 pop,GOP 0.4863905325443787\n",
      "3031 0.7570510518935949 811 pop,GOP 0.4525277435265105\n",
      "3032 0.7884828813841944 1140 pop,GOP 0.5543859649122806\n",
      "3037 0.7871245023152632 252 pop,GOP 0.24603174603174602\n",
      "3038 0.6449640368115094 741 pop,GOP 0.5344129554655871\n",
      "3039 0.7351895490985731 1067 pop,GOP 0.5248359887535146\n",
      "3040 0.7208101760360256 1044 pop,GOP 0.4904214559386973\n",
      "3041 0.7396371064954022 855 pop,GOP 0.4842105263157895\n",
      "3042 0.714173866872917 744 pop,GOP 0.46908602150537637\n",
      "3043 0.759465598832764 793 pop,GOP 0.5220680958385876\n",
      "3047 0.7758382249064673 593 pop,GOP 0.596964586846543\n",
      "3053 0.7847446992564475 808 pop,GOP 0.5\n",
      "3054 0.754327500964373 1178 pop,GOP 0.5492359932088285\n",
      "3055 0.7574103419355995 812 pop,GOP 0.4433497536945813\n",
      "3056 0.7686790128353546 567 pop,GOP 0.5061728395061729\n",
      "3057 0.7609452004106606 906 pop,GOP 0.3973509933774834\n",
      "3058 0.7277182541131193 1112 pop,GOP 0.5692446043165468\n",
      "3060 0.7220137795540971 867 pop,GOP 0.5628604382929643\n",
      "3061 0.7139565008314472 877 pop,GOP 0.5313568985176739\n",
      "3066 0.7310029305551828 741 pop,GOP 0.5087719298245614\n",
      "3068 0.7200692405513354 945 pop,GOP 0.5693121693121693\n",
      "3069 0.7531861342191188 745 pop,GOP 0.4657718120805369\n",
      "3084 0.7218802795116754 749 pop,GOP 0.4165554072096128\n",
      "3085 0.7525886883738903 452 pop,GOP 0.39601769911504425\n",
      "3086 0.7497383944508391 676 pop,GOP 0.27514792899408286\n",
      "3087 0.7777089948170527 486 pop,GOP 0.07818930041152264\n",
      "3088 0.6842337072353428 318 pop,GOP 0.36792452830188677\n",
      "3089 0.650468334763283 762 pop,GOP 0.41732283464566927\n",
      "3094 0.6867855931715803 588 pop,GOP 0.3979591836734694\n",
      "3095 0.7850837889020896 410 pop,GOP 0.40487804878048783\n",
      "3097 0.7113359205084524 499 pop,GOP 0.38276553106212424\n",
      "3098 0.7428919882621705 400 pop,GOP 0.3125\n",
      "3099 0.7526747573129764 495 pop,GOP 0.3292929292929293\n",
      "3103 0.678969587076736 720 pop,GOP 0.5111111111111111\n",
      "3104 0.6857229065389042 587 pop,GOP 0.4957410562180579\n",
      "3105 0.6701372070172709 642 pop,GOP 0.4968847352024922\n",
      "3106 0.7197550345715387 302 pop,GOP 0.3609271523178808\n",
      "3107 0.6986414401169042 386 pop,GOP 0.4896373056994819\n",
      "3108 0.6719055358409562 676 pop,GOP 0.5517751479289941\n",
      "3109 0.6948309392737726 740 pop,GOP 0.4689189189189189\n",
      "3110 0.700444004792256 574 pop,GOP 0.4843205574912892\n",
      "3111 0.7242275691094693 597 pop,GOP 0.5142378559463987\n",
      "3112 0.7113084228891875 354 pop,GOP 0.4604519774011299\n",
      "3113 0.7097333153048936 766 pop,GOP 0.4556135770234987\n",
      "3114 0.7639262546645015 609 pop,GOP 0.3842364532019704\n",
      "3115 0.7955136381340326 657 pop,GOP 0.3181126331811263\n",
      "3120 0.6505260019350951 700 pop,GOP 0.5714285714285714\n",
      "3121 0.733540633062368 320 pop,GOP 0.146875\n",
      "3122 0.7347503874904961 724 pop,GOP 0.3660220994475138\n",
      "3123 0.7413838940117621 711 pop,GOP 0.37834036568213786\n",
      "3124 0.7517088687959133 723 pop,GOP 0.38865836791147995\n",
      "3125 0.7554163841186171 620 pop,GOP 0.3161290322580645\n",
      "3129 0.7803857296086585 394 pop,GOP 0.04314720812182741\n",
      "3130 0.7737033162458218 750 pop,GOP 0.2693333333333333\n",
      "3131 0.6639675297079298 537 pop,GOP 0.3985102420856611\n",
      "3132 0.7181031956013948 664 pop,GOP 0.40813253012048195\n",
      "3136 0.69756768672762 486 pop,GOP 0.43415637860082307\n",
      "3137 0.7458382753880248 652 pop,GOP 0.36809815950920244\n",
      "3138 0.7946681774984697 215 pop,GOP 0.09767441860465116\n",
      "3139 0.786345680350184 546 pop,GOP 0.11721611721611722\n",
      "3140 0.7914949156796345 454 pop,GOP 0.13215859030837004\n",
      "3142 0.7630871536688291 610 pop,GOP 0.22459016393442624\n",
      "3143 0.7302620055239977 609 pop,GOP 0.3284072249589491\n",
      "3149 0.6831595047350703 545 pop,GOP 0.46055045871559636\n",
      "3150 0.6917808130880955 490 pop,GOP 0.373469387755102\n",
      "3151 0.776729940973365 424 pop,GOP 0.08254716981132075\n",
      "3152 0.76885252217498 474 pop,GOP 0.10126582278481013\n",
      "3163 0.6437224012772729 396 pop,GOP 0.4797979797979798\n",
      "3164 0.7421513918598338 261 pop,GOP 0.25287356321839083\n",
      "3170 0.7077628057190591 398 pop,GOP 0.16331658291457288\n",
      "3173 0.7069196208041642 757 pop,GOP 0.5284015852047557\n",
      "3175 0.7271478797222866 289 pop,GOP 0.17301038062283736\n",
      "3177 0.6638638691875426 921 pop,GOP 0.50814332247557\n",
      "3178 0.7178344044636167 585 pop,GOP 0.4222222222222222\n",
      "3179 0.7345686850335504 671 pop,GOP 0.488822652757079\n",
      "3182 0.7506594700411907 520 pop,GOP 0.08653846153846154\n",
      "3184 0.7783720745118624 651 pop,GOP 0.21505376344086022\n",
      "3186 0.7506756906551548 562 pop,GOP 0.42526690391459077\n",
      "4673 0.7979635876392608 762 pop,GOP 0.5643044619422573\n",
      "4684 0.777264309535403 408 pop,GOP 0.36764705882352944\n",
      "4881 0.7775937752299763 847 pop,GOP 0.5655253837072018\n",
      "4964 0.7939006644264719 775 pop,GOP 0.4206451612903226\n",
      "5768 0.7680709109369795 747 pop,GOP 0.714859437751004\n",
      "5769 0.7760182964020194 894 pop,GOP 0.714765100671141\n",
      "5770 0.7684208227580579 937 pop,GOP 0.7214514407684098\n",
      "5771 0.7683911515137863 713 pop,GOP 0.6900420757363254\n",
      "5772 0.7967513956936665 1128 pop,GOP 0.7349290780141844\n",
      "5773 0.7733576769574735 461 pop,GOP 0.7678958785249458\n",
      "5774 0.7965166095430771 722 pop,GOP 0.7631578947368421\n",
      "5777 0.7827440480093845 744 pop,GOP 0.7782258064516129\n",
      "5807 0.7837276474154319 756 pop,GOP 0.7738095238095238\n",
      "6466 0.7997595533867208 644 pop,GOP 0.7577639751552795\n",
      "6469 0.7994556001784848 581 pop,GOP 0.7917383820998278\n",
      "6675 0.7990236521950987 838 pop,GOP 0.42601431980906923\n",
      "6805 0.7963771946854101 684 pop,GOP 0.4444444444444444\n",
      "7460 0.7897144665222571 1191 pop,GOP 0.6364399664147775\n",
      "7528 0.7812224244107978 311 pop,GOP 0.4855305466237942\n",
      "7529 0.7847986386496869 557 pop,GOP 0.4703770197486535\n",
      "7537 0.7722486171257036 197 pop,GOP 0.350253807106599\n",
      "7538 0.7925044865449156 484 pop,GOP 0.3450413223140496\n",
      "7544 0.7869565455870048 848 pop,GOP 0.44221698113207547\n",
      "7549 0.7887249068034774 242 pop,GOP 0.512396694214876\n",
      "7553 0.7795669798429492 342 pop,GOP 0.30994152046783624\n",
      "7580 0.7857542028542406 245 pop,GOP 0.3306122448979592\n",
      "7626 0.79528966419789 1039 pop,GOP 0.641963426371511\n",
      "7659 0.7886584674024705 826 pop,GOP 0.463680387409201\n",
      "7664 0.7991428051227919 444 pop,GOP 0.45045045045045046\n",
      "7665 0.7973313522707306 582 pop,GOP 0.4793814432989691\n",
      "7666 0.7942006501529861 612 pop,GOP 0.4820261437908497\n",
      "7672 0.7880260507791718 487 pop,GOP 0.17248459958932238\n",
      "7688 0.788614342448456 530 pop,GOP 0.39622641509433965\n",
      "7689 0.7995387647712846 253 pop,GOP 0.11462450592885376\n",
      "7693 0.7946407681689499 302 pop,GOP 0.3211920529801324\n",
      "7881 0.7975051444593043 385 pop,GOP 0.7922077922077922\n",
      "7943 0.7964307486737467 405 pop,GOP 0.7555555555555555\n",
      "7952 0.7697116714069494 492 pop,GOP 0.6788617886178862\n",
      "7953 0.7626655655038175 393 pop,GOP 0.6870229007633588\n",
      "7954 0.7642171301027854 357 pop,GOP 0.7282913165266106\n",
      "7970 0.769562495735754 275 pop,GOP 0.7527272727272727\n",
      "7971 0.7386392529203717 387 pop,GOP 0.7467700258397932\n",
      "7972 0.7525394994310002 292 pop,GOP 0.75\n",
      "8083 0.7886583024340802 202 pop,GOP 0.3564356435643564\n",
      "8678 0.7876833108232874 873 pop,GOP 0.572737686139748\n",
      "8680 0.7733610298920425 400 pop,GOP 0.6425\n",
      "8749 0.7906471338515881 473 pop,GOP 0.23678646934460887\n",
      "8873 0.7517688794736032 1061 pop,GOP 0.7210179076343073\n",
      "8879 0.7574744296086705 480 pop,GOP 0.7458333333333333\n",
      "8880 0.7681264899245244 514 pop,GOP 0.745136186770428\n",
      "8881 0.7778724053201038 943 pop,GOP 0.8048780487804879\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting underused PRECINCTS\n",
    "for p in range (nPrecincts) :\n",
    "    if precinctUse[p] < 0.8 and isSkippedPrecinct[p] == 0 and vtdPop[p] > 0: #ignore suppressed precincts\n",
    "        print(p,precinctUse[p], vtdPop[p],\"pop,GOP\",vtdGOP[p])\n",
    "        pU = round(precinctUse[p],3)\n",
    "        tractX = vtdGeom[p].centroid.x\n",
    "        tractY = vtdGeom[p].centroid.y        \n",
    "        # print(t, ratio,\"(\",tractX,tractY,\")\",HDvGOP[t], \"t, pop/target,(x,y), pctR\")\n",
    "        plt.text(vtdGeom[p].centroid.x, vtdGeom[p].centroid.y,pU, fontsize=9)\n",
    "        if notPolyVTD[p] == 0 :\n",
    "            x,y = vtdGeom[p].exterior.xy\n",
    "            plt.plot(x,y)\n",
    "        else :\n",
    "            for geom in vtdGeom[p].geoms:\n",
    "                x,y = geom.exterior.xy\n",
    "                plt.plot(x,y)\n",
    "\n",
    "x,y = wholeMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"purple\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 350,
   "id": "37f47a77-d58e-4b4c-be60-676819128e21",
   "metadata": {},
   "outputs": [],
   "source": [
    "# (OPTIONAL) IF WE STOPPED AND RESTARTED, read the data back in:  #NEED TO UPDATE THIS W/ANGLES, RADII\n",
    "import pandas as pd\n",
    "infilename = \"FL_nD28tol0.01nW4.csv\"\n",
    "df2 = pd.read_csv(\"state_HD_output/\"+infilename)\n",
    "HDvPop = df2[\"HD-pop\"]\n",
    "HDvHisp = df2[\"HDvHisp\"]\n",
    "HDvGOP = df2['HDvGOP']\n",
    "HDweight = df2['HDwt']\n",
    "HDarea = df2['HDarea']\n",
    "tractLoopCounter = df2['Loops']\n",
    "tractPop = df2['tractPop']\n",
    "tractCPx = df2['centroid x']\n",
    "tractCPy = df2['centroid y']\n",
    "tractUse = df2['tractUse']\n",
    "# nearEdge = df2['nearEdge']   #add this back in, PLEASE\n",
    "df2.head()\n",
    "nTracts = len(tractPop)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "e9b2c0c0-fb53-44e5-9155-1963d4833ee8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "750596.7418101031 0.1131774380110593 0.0001361943772 0.0400616118781349 0.7450137754374908\n"
     ]
    }
   ],
   "source": [
    "#  HERE'S A BLOCK TO OVERWRITE THE REDONE DATA\n",
    "for r in range(nRedos):\n",
    "    t = redo[r]\n",
    "    HDvPop[t] = redoHDvPop[r]\n",
    "    HDvGOP[t] = redoHDvGOP[r]\n",
    "    tractArea[t] = redoHDarea[r]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "c80e0880-6811-4408-b847-6d70bd2546ff",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt   #SKIP THIS BLOCK IF STARTING FROM FIRST BLOCK\n",
    "from scipy.stats import norm\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "c8f73bb9-e36b-41c7-9220-1ec09169aa3e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# all done with redo's.  Let's look at some outputs.  First, red/blue by home district  SHOULD BE MIX OF RED AND BLUE\n",
    "nPlot = 5\n",
    "for t in range(nTracts):\n",
    "    if(t % nPlot == 0 and tractPop[t] > minTractPop):\n",
    "        redd = min(max( 0, ( HDvGOP[t] - 0.5) * 3.0 ),1)\n",
    "        bluu = min(max( 0, (0.5 - HDvGOP[t]) * 3.0 ),1)\n",
    "        plt.scatter(tractCPx[t],tractCPy[t],marker='.',color=(redd, 0,bluu ) )\n",
    "x,y = wholeMAP.exterior.xy\n",
    "plt.plot(x,y,color='green')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "a5d3b510-6d1e-49ae-9a5d-03352e2b449e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "map of tracts that were used less than 0.7 of expectation in OH\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Now, where are those UNDERPERFORMING tracts (<0.x usage)\n",
    "maxPlot = 0.70\n",
    "print(\"map of tracts that were used less than {0} of expectation in {1}\".format(maxPlot, STATE) )\n",
    "for t in range(nTracts):\n",
    "    if(tractUse[t] < maxPlot and tractUse[t] > 0.05):  #ignore skipped tracts\n",
    "        redd = min(max( 0, ( HDvGOP[t] - 0.5) * 3.0 ),1)\n",
    "        bluu = min(max( 0, (0.5 - HDvGOP[t]) * 3.0 ),1)\n",
    "        plt.scatter(tractCPx[t],tractCPy[t],marker='.',color=(redd, 0,bluu ) )\n",
    "\n",
    "x,y = wholeMAP.exterior.xy   #turn these on if I pull map back in\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "876011e8-d37e-44a6-8dd9-a1e4d2f51e58",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here is a map of tracts that were used more than 1.2 of expectation\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAABJaElEQVR4nO3deXhTVfrA8e9JurG0LIWyFsoOpSyFglxQDKCCgIyyqKiguKAiKjqO/hjFQVFxXMFtFBEGVMQVFQERAxdQLiir7GUrtGwtZV/aNMn5/dG0E0rapkuaNj2f5+lDcnPvzZsLvD1571mElBJFURQlcJn8HYCiKIriWyrRK4qiBDiV6BVFUQKcSvSKoigBTiV6RVGUABfk7wA8qVOnjoyJifF3GIqiKBXGhg0bTkgp63p6rVwm+piYGNavX+/vMBRFUSoMIcTB/F5TpRtFUZQApxK9oihKgFOJXlEUJcCpRK8oihLgvE70QgizEGKTEOIn1/PXhRC7hBB/CSEWCCFq5nPcACHEbiHEXiHE/5VS3IqiKIqXitKifxzY6fZ8GRAnpewIJAIT8x4ghDAD7wM3ArHASCFEbPHDVRRFUYrKq0QvhGgMDAJm5myTUv4ipbS7nq4FGns4tDuwV0q5X0ppA+YDfytZyIqiKEpReNuPfhrwNBCez+v3Al962N4ISHZ7ngJc5ekEQoixwFiAJk2aeBmWoihKxZZ2IY0NRzeQmJ5IuzrtuL7F9aX+HoUmeiHEYCBVSrlBCGHx8PqzgB343NPhHrZ5nABfSjkDmAGQkJCgJslXFCUgnck4w7rD6zCSDX5L/o0VB1bgkA4AmtVsxv7H95f6e3rTou8FDBFCDATCgAghxGdSyruEEHcDg4F+0vMKJilAtNvzxsCRkgatKIpSETilk8T0RIxkAyMl+2d76nYkEoGgfVR7/tHzHwxsNZAXV73IgVMHfBJHoYleSjkR141WV4v+KVeSHwA8A1wrpbyYz+F/Aq2EEM2Aw8DtwB2lELeiKEq54pROkk4nsT11O5uPbcZIMVibspZTGacAqBFaAy1aY0TsCLTGGt0bdadGWI3c46OqRZF0OsknsZVkrpv3gFBgmRACYK2U8iEhRENgppRyoJTSLoQYDywFzMAsKeX2EketKIriJxn2DFYfXM3Pe39my/EtVAupxpFzR9iRtoOLWf9r88bWjWVou6FojTW0aI22ddpiEv4ZulSkRC+l1AHd9bhlPvscAQa6PV8MLC52hIqiKH4kpWR3+m6W7l3Kz/t+ZmXSSi7ZLxFiDqFTvU6kXkglqloUD3R5gLioONrXbU/7qPZEhEb4O/Rc5XL2SkVRFH+QUnLy0kkOnjnI3pN7se638vO+nzl05hAArSNb80CXB+jfsj/XNr2WaiHV/Byxd1SiVxSl0jqXeY6bvriJbanbqBlWk+MXjnPedj739fCQcPo178c/r/4n/Vv2J6ZmjP+CLQGV6JWAIqXEdc9IUa6QYc/ASDZYkbSC5QeWY6QYOKUTgP4t+1O3al2a1mhKTM0YYmrGEBcVR7A5uMzi89x5seRUolcCRtLpJAZ+PhC70849ne9hdKfRNI7wNGBbqSzsTjtrU9ay4sAKlictx0g2yHRkYhImEhom8I+e/6BPTB/6NutbpgndE+Fx2FHpUIle8buTl07y7Y5vuarxVXSs17FY59iWuo3+n/XnYtZFOkR14NnlzzJpxSSub349YzqP4W9t/0ZYUFgpR66URw6ngxVJK/hi6xd8v/t7Tl46iUDQuX5nHun2CH2a9eGaJtdc1rUx0KlEr/iFlJJVB1fx8caP+WbHN2Q6Mrmjwx18PtTTAOuC/X7odwZ/MZgqQVVYdc8qOtTrwL6T+/jv5v8yZ8scbv/2dmqF1WJk3EjGxI+ha4OuqrwTYKSUbDi6gc//+pz52+dz7PwxwkPCGdJmCLe0vYU+zfpQu0ptf4fpNyrRK2Uq9UIqczbPYeammSSmJxIRGsF98ffx3a7vcDgdRT7fosRFjPh6BI0jGvPLqF9yb5a1qN2CKX2nMNkymeUHljN782xmbZ7FB+s/IC4qjjGdx3BXx7uIqhZVyp9Q8bW1KWvZmbaTuKg49p3ah5Fs8PO+n0lMTyTEHMLAVgO5s8OdDGo1iCrBVfwdbrkgfFX8L4mEhASpFgev+I6dP8ahM4eIjohmW+o2Pt74Md/v+p4sZxa9onvxQJcHGNF+BFWDq9L2vbZcyLpAj8Y9vD6/3Wln4e6FdK7fmcV3Li40aZ/OOM38bfOZvXk2fxz+gyBTEINaDWJM5zEMbDXQ7zVaJX+Xsi7xU+JPzN8+n+92fnfZa1WDq9Izuie3xt7K8Njh1KpSy09Rlsxd393F2pS17H1sb7GOF0JskFImeHpNtegDjJQSu9NOljOLLEcWNoct93GW0/Xctd3TT84+Hl/zdJwz/9f+PPInGfaM3Ngiq0Qyvvt47u9yP7F1L1+WYEibISzas4gdaTuK9HlHtB/BjMEzCA/Nb2LV/6kZVpOHEh7ioYSH2JG2g9mbZvPpX5/yw+4fiKoWxV0d7mJM/BjiouKKFIPiOwdPH+SDPz9g5qaZnLx0ksgqkTzR4wm6NOhCzbCaNAxvSMd6HQkyBUYqk57nfCwx1aLPQ0qJQzqwO+2X/TicjssSaGGJtKiJtqAEm98+ec+T87ovhZhDcn+CTcGXPb/sNXMwLWu1ZGCrgRw5d4SoalEMaTOE0KBQn8ZXVFmOLJbuW8rszbNZuHshWc4sEhomMKbzGEbGjaywrcOKTEqJ9YCV9/54j4WJCxEIbm57Mw8nPMy1MdcGTFLPa9SCUaxJXsO+x/YV6/hK1aKfsnIKaw+vvSzZekrA+W3L6VNbFoJMQQUmy5yEGWwKplpItXwTrPvzYHNw7rb8Hnt6j3zf323/IFNQwN3EDDYHM7j1YAa3HkzahTTmbZ3H7M2zeWTxIzy59EmmD5jOgwkP+jvMSsEpnXyz4xteXPki29O2U6dqHf6v1//xUMJDRNeILvwESr4CLtG/+vurXMy6SI/GPQg2BRMaFEp1U/XLkmbOn+5JMOfPIFPQZT9mYb5i22XHezqn2zZP7xFqDiXYHOy3CY4Uz+pWq8vjPR7n8R6P89zy53h59ctkOjL9HValMGvTLB5b8hgXsi4QWzeWOTfP4db2t6ousaUk4BJ9iDmE++PvZ/qN0/0dilJB7T+1n+nrptO7aW8e6faIv8MJaBn2DMYvHs8nmz4BYP6w+QyPHY7ZZPZzZIEl4BK9SZjKtPyiBBa7085d392FWZj59JZPVcLxkQx7RvZN1o0z2XliJ89e8ywvWF5Q19tHAi7RC4RK9EqxvbL6FYwUg3lD51EzrCZvGW+RfCaZ1IupnLp0imeveZZeTXr5O8wKKdOeybL9y1iyZwkfbvgQp3QSZApiyZ1LGNBygL/DC2gBl+hNwuSzLkpKYFubspYXV77InR3u5OomV9Pt424kpidSPaQ6UdWiSL+YziOLH2HjgxvV/ZUikFLy6V+f8uzyZ0k5m0LV4Krc0vYWOtbryJPak1QPqe7vEMsNNamZl1TpRikOKSWjFoxCIrm57c0sP7CcxPREPh/6OXd0yF79ct7Wedz53Z18vf1rbou7zc8RVwxbj29l3OJx/HboN7o17MaHgz6kX/N+6iarB76c1CzgmiUmYSrWUHqlcrM77TSv1RyBYMTXI7jnh3sALms03B53Ox2iOvC8/jx2p91PkVYMDqeD2765jY4fdmRn2k5m3jSTtfevZVDrQSrJ+0FAtuhV6UYpqmBzMEvvWsq5zHP8nvw7epLOpmObLhvBaxImpvSZws1f3szcLXO5N/5eP0Zc/pzNPMvKpJV8vvVzvt/1PZmOTKqHVGf3+N1EVo30d3iVmteJXghhBtYDh6WUg4UQI4DJQDugu5TS41BWIUQScA5wAPb8Rm6VFlW6UUoiPDScAS0H5HtzcEibIXRv1J37fryP+368j00PbqJz/c5lG2QR2Ry23DmHSntkslM6Wbh7Ie/+8S4rD67M/aYTHhLOp7d8yvDY4QE3yK4iKkqL/nFgJ5Cz4u02YCjwkRfH9pFSnihibMViEiYcUpVulNJnGGvR9ZWM7/ooow+PAuDUpVN+jupKqRdSMZIN1iSvYU3KGtYfWU+GPQOzMNOidgtubHkjw2OH06Nxj2JPJ5Bpz2Te1nm8YbzBjrQdNK3RlCd7PMmAlgOIbxBPRGiEumFdjnj1tyyEaAwMAl4GngSQUu50veaz4IrDbDKrFr1S6gxjLf369cdmsxESEkLXf3flUMYhujXq5u/QSDqdxNK9S1mTsoY1yWvYezJ79sNgUzBdG3ZlXMI4YuvGknQ6iS3Ht/Cf9f9h+rrpRIRGEFs3lkbhjWhQvQENwhtQv3p9Tl06RdLpJFIvppJ2IY3UC6kIIYiqFkWzms24kHWB5QeWk3ohlU71OvH50M+5tf2tATsHTSDw9m9mGvA0UPgUgVeSwC9CCAl8JKWc4WknIcRYYCxAkyZNivE22VTpRvEFXV+JzWbD4XBgs9nodvYqNtg3MG3tNJ7r/VyZxvL+H+/zx5E/iAiJwEgx2HB0AwBR1aLoGd2TsV3G0jO6J10bdvV44/NMxhmW7V+Gdb+V3em72Z62nV/3/8qZzDO5+0SERlC/en2iqkXROrI1AEfPH+WnxJ8INgdjibFwf/z9XNf8unLX2KvIfHV/sdBEL4QYDKRKKTcIISzFeI9eUsojQogoYJkQYpeUclXenVy/AGZA9uyVxXgfQCV6xTcslmsJCQnJbdGP7juKowcP8/qa13k44WGf32x0Sie/7PuFD9d/yA+7fwCyJ8Xr0bgHr/R9hWGxw2hVu5VXSbdGWA2Gxw5neOzwy7ZfzLrI8fPHqRlWU83a6Qe+/IXpTYu+FzBECDEQCAMihBCfSSnv8uYNpJRHXH+mCiEWAN2BKxJ9aVHdKxVf0LQeWK1L0fWVWCzXomk9eKnFS3T8T0f+/fu/ee3610p0/ixHFqcyTpFhz8AkTJiFGZMwsfPETr7f9T0/7v6RA6cPULdqXZ7p9QzP9X6OqsFVS7UOXjW4Ks1qNSu18ynlR6GJXko5EZgI4GrRP+VtkhdCVANMUspzrsc3AC8WO1ovmIWq0Su+oWk90LT/rYAVFxXHXR3v4p1173Au8xx3dLiDXk16eZV8j50/xqLERfyW/Bubjm5iR9oOspxZHvcNMgXRt1lfpvabys1tby53c/or5V+x754IIW4B3gXqAouEEJullP2FEA2BmVLKgUA9YIHrK0kQME9K+XMpxJ0vVbpRSttWw2CTrhNvsdBB0y577fXrX8futDP3r7l8uOFDoiOiua39bdwedzvto9rn1sillGw5voWFuxeyMHEhfx75E8iuq3dp0IUBLQcQHRFNWFAYTunMXfymcURjrm5yNXWq1inzz60EjiIleimlDuiuxwuABR72OQIMdD3eD3QqaZBFoRK9Upq2GgaP9etHls1GcEgI71itlyX7etXrMW/YPM7bzvPj7h/5YtsXTFs3jTeMNwCoXaU2DcMbcjrjNClnUxAIrmp8FS/1eYmb2txEh6gO6mam4nMB1x9KCDV7pVJ6Nuk6WTYbToeDLJuNTbp+RaseoHpIde7ocAd3dLiD9IvpLNm7hIOnD3Lk3BGOnD9CkCmIgS0HMrDVQOpVr+eHT6JUZoGX6BFqCgSl1MRbLASHhOS26OMtlkKPiawayV0dvbqNpSiXUbNXekkI4bOLpVQ+HTSNd6zWfGv0SmDZYhis13USLBY6lfHftS9nrwy8RO/Di6VUTh00TSX4YjCM3ej6diyW9kAIur6HyMjqpKdfxGJpiabF+DvEy2wxDB5wux/zsdVa5sneVwIu0YPvRpcpiuIdw9hNv36TsdnsmM1hCFGXrCwHTqfEZDITGhqC1fpwuUr2693ux9htNtbrukr05ZUq3SiK/xjGRnR9LYcOObDZ7DgcTpxOM2An57+l0ymx2ezo+t5ylegTXPdj7DYbQSEhJHhxP6aiCLxEr27GKopfGMZG+vW7E5vNhtlcg6CgVgCYzQ6ECCIry47Tmd0YCwkJwmJp6bdYdxoGW3WdDhYL7Vyt9k6axj+nTWP5t9/Sd9iwgGnNQyAmetUnWVH8QtfXkpl5AaczCyntjB07giZN2mCxtGfr1oM88sh/kNKG2RzGtGkP+a01v9MweLZfv9yW+8tWK+00jR2GwawJE8iy2UhavZrWHToQGyDJPiAnjFalG0Upe5GR4Tid54AMnM6zxMc3ZuLEoWhaG9LTk5HyEFIeQcqDpKcf8lucW3Udu1stfquuA/BXnjETf7m2lyVfVSMCLtGr0o2i+Ed6ehomU3ZKMZlMpKen5b4WGRmJyWTCZDK5yjY+XWiuQB0sFoJCQjCZzQSFhNDBVYuvERmJcMUYHBJCxzKu0ft79soKRd2MVRTfWm8YrNF1elosJLiVNiIja2I2Zyf64OBgDh06imGsB6owYcKHOBxVMJkk06b9HU0r05lRLtNO07h72jRWf/st1wwbRjtNY5erbBPkcCCFoGP//nieYq5iCrxEr/rRK4rPrDcMhrv1Nf/GaiVB0zAMgwkTHsXhsCNEKE5nGB9/PI85c77m7rsfwGbLwuk0I4SJ9PQLfv0MmwyD5ydMwGazsWz1app06MA+VzlHOLOnT/nthx+wLl3KhwHSlz7gSjeg+tEHoiTD4NepU0kyDH+HUqmtcdWxHa469hpXHVvXdWw2G05nFk6nxG53ulbjygIuEhISjNlsIiQkGIulsz8/An/kxOr6DH/oOnGucg5CIIEMKbHbbGzwQ53eFwKvRa9KNwEnyTD4wK2XxDirlZgAaGVVRD1dfc1xteh7uurYFosldwUusxmECMZudxASEszo0bcwevQd6PpmLJbOaFp7v36G7q5Yc76VdLdYaKtpTLFaWTZ3Ll/NmoXD4SAoJISuAdKXPvASvboZG3D2ur5WS4cDh83GXl1Xid5PEjSNb6zWK2r0mqZhtf6KrutYLBYgGF1fg8XSE01LcO3j3wSfI17TeGHaNFZ9+y29hw0j3vUZ2moaDsAG2IEBo0dfVrbZYRhs0XU6WSw+63apJjXzkupHH3haur5WO2w2zCEhtAyQVlZFlaBpl92EzaFpGprb9pwEX97sMAxmu/rL73PrL7/dMPiH2/2HwaNHX3bM026vvWa1lnqy9+X9xcCs0avSTUCJ0TTGWa3cOGWKKtsoJZZff/ktebZvcavPF/RaRRB4LXrV6yYgxWiaSvBKqeiYZ42BnP7ynfJs7+T2zbGg1yoCrxO9EMIMrAcOSykHCyFGAJOBdkB3KeX6fI4bAEwHzGSvJftqiaMuhKrRK4qSn1hN4z63Gn1OCaa9pvG61Zpbh2+vaew2DLbrOu0tFl5ze62iTY1QlBb948BOIML1fBswFPgovwNcvxzeB64HUoA/hRA/Sil3FC/cwqleN4qiFGSLYfCSq0a/avVqmnbokHvTtb2m0d71eLdhMNmtt9dkq5WREyf6M/Ri86pGL4RoDAwCZuZsk1LulFLuLuTQ7sBeKeV+KaUNmA/8rbjBekOVbhRFKYineec92Z5nTpztPq7Lz948m+SzyT45t7c3Y6cBTwNFXXW7EeAeeYprm0+p0o2iKPnJmXfe7JrrJr9559vnmROnfQWry7srtHQjhBgMpEopNwghLEU8v6fmtccsLIQYC4wFaNKkSRHf5rLz4HQW9feRoiiVRSdN42PX4KiqQFgB+/a5+24Arh09mjY+rsuP6TyGX/f/6pNze1Oj7wUMEUIMJPuaRAghPpNSerPMfQoQ7fa8MXDE045SyhnADICEhIRiN8lV6UZRlMKEAZvmzMFus/H7nDk8b7Velsh3GwYvutXnr3XrU18RFVq6kVJOlFI2llLGALcDy71M8gB/Aq2EEM2EECGu438sdrReUqUbRVEKssOt/p6VkcGquXPzfd1us7HDVZ/fZRh8M3UquyrYnEvFHjAlhLhFCJECaMAiIcRS1/aGQojFAFJKOzAeWEp2j52vpJTbSx52IbGpVr2iKAWItVgwB2UXNKSUrJw1i0S35B2bpz4fHhnJjIcfZlKfPsybNInn+/Ur9WTvywZqkQZMSSl1QHc9XgAs8LDPEWCg2/PFwOKSBKkoilKa2mgafcaMwfrRRyAl0uFgh67T2lW+aaNpPG+1skPXCY+MZO6ECVzKyCDL1XU7KzOTbbpO29KeBsFHU7gE3BQIqmyjKIo3rh09mtCwsNzeN7FuvWr2GgZ7XYuHn09Pz56r3m18jnQ6qREZ6YeoiyfgpkAANbGZoiiFMwN9774bB3D16NG5rfm9hsEbbjdib502LXuu+owMTFLiAIJNJi6mp/sz/CIJyESvKIpSkH2GwZv59KrZnWda7Evp6TxntbJ67lxWzZ6N026/4htAeacSvaIolU7eZL5b12mRU5/PMy12G4uFlppGa02j9+jR7NB1Yi0WWlWg+W4CLtGreW4URSmMp2Seo6Wm8ZTVym5dz03yOVppms8SvC9zV8AlelDdKxVFKVgLTePvbsk8CFg+dSotLBaaahotXT9lySmdmIRv+scEZKJXFEUpTAtNo4WmcdAwmOFWrx9rtdLUD2UZp3RiFmafnFt1r1QUpVLb51avt9ts7PPT6lG+bNEHXKIH1b1SURTvtXDV64WrP30LP/WmUaUbRVEUH2mqaYy1Wtmn67k1ek+SDYMkXSfGYiHaB6UdlegVRVF8qKmmFViXTzYM5vTrl9tL526rtdSTvUM6VOnGW6p7paIoRXHIMFg1dSqHCpikLEnXcbj1u0/yQR3fKZ2YTb65GRuQLXrVvVJRFG8cMgz+69ZSv8dqpYmHlnqMxYLZrd99jA/q+Kp0oyheSjEMDuk6TSwWGlegkYuKf3hqqXtK9NGaxt1Wq89q9FJKUi+kqkTvLdW9svJKMQzmubXO7rBaVbJXClSUlnq0ppUowTucDowUg41HN3Li4glubnsz6RfT+Xbnt3y/63uOXzhO76a9i33+ggRcogfVvTKQbZoxg8Rvv6X1sGHEjx172WuH8rTODum6x0R/0DA4oOs0K6CHhVI5NNE07nFrqXtqzZeG/af2c9s3t7H+yPrcbVNWTQGgWnA1BrUeRN+YvtzU5iafvH9AJnolMG2aMYNlDz6IBJJ++YW9S5bQ4+mnc1tZTfK0zpp4aJ0dNAw+cRsFeZ+fRkEq5UcTTfNZggeYtnYaz694niBTELP/Npv+LfoTGhTK3C1ziakZQ/8W/akSXMVn7w8q0SsVyF+ffIIEBCCBPd9/T+LSpYx2dXVrrGncYbUWWKM/kGcU5AFdV4le8ZnUC6k8sfQJAPY+upcWtVvkvjahx4Qyi0N1r1QqjGoNGwLk3oVxwBVd3RprGj0nTsy3Nt/MYiHIbMYsBEFmM80q0JziSsVTK6wWVzW6CoBXVr9CliPLL3F4neiFEGYhxCYhxE+u57WFEMuEEHtcf9bK57gkIcRWIcRmIcR6T/uUNtW9MjD1ePppZFAQTsAGSJOpyF3dTECQEJhdfwZcS0cptsOGgTF1KodLcdHvYHMwq8es5p9X/5NZm2cxaN4gLmZdLLXze6sopZvHgZ1AhOv5/wFWKeWrQoj/cz1/Jp9j+0gpTxQ/TEXJbq3ftWoVB3WdsMhILqanF7mr2wFdx2m3g5Q47XYO6PoVx+82DLbrOu0tFtqosk6lcNgwmO/WY+t2q5VGpXQjP9gczMv9XqZheEPGLxnPnM1zeLjbw6X9EQrkVaIXQjQGBgEvA0+6Nv8NsLgezwF08k/0ZUZ1rwxsjV21+KI64FrsOSIy8rIbtnlLN7sNgxfcbtb+y2pVyb4S8NRjK2+iL+mN/HHdxjF93XQ+3vgx93e5n2BzcGl/jHx526KfBjwNhLttqyelPAogpTwqhIjK51gJ/CKEkMBHUsoZnnYSQowFxgI0adLEy7A8U90rFXcHDIMP3P6DDp82jcz0dJp5+Daw3XWz1um6Wbtd11WirwS86bFV0hv5Qgim9JnC7d/ezvWfXs8Pt/9AjbAapfgp8ldoohdCDAZSpZQbhBCWYrxHLynlEdcvgmVCiF1SylV5d3L9ApgBkJCQoJrlSqnZm2d90LPp6Vw/caLHfdu7pqzN+aXQXt2srRQaaRq3u/XY8lS2aZbn30ZxbuTfFncbaRfTeHTJo3y+9XPGdRtXCtEXzpsWfS9giBBiIBAGRAghPgOOCyEauFrzDYBUTwdLKY+4/kwVQiwAugNXJHpF8ZWWedYHbVnAf9A2msa/rFZVo6+EGmmaxwSfo6mmcZ/VWuLBducyzwHQrGazYh1fHKIo3RFdLfqnpJSDhRCvA+luN2NrSymfzrN/NcAkpTznerwMeFFK+XNB75OQkCDXry9eB52en/SkWkg1lo1aVqzjlcCUU6NvabHQzAfJO8VtrnI17YKSn4OnD9L8neYMazeML4d/WaplZiHEBillgqfXSjJg6lXgKyHEfcAhYITrzRoCM6WUA4F6wALXhwkC5hWW5EuD6l6p5NVM0y5L8NsMg026TrzFQlwBiXmHYbBF1+lksRCbz34phsGnbj02Rqk5dpR8HDh9AKd0cm/8vWV6L7FIiV5KqZPduwYpZTrQz8M+R4CBrsf7gU4lDVJRStM2w2BCv35k2WwEh4QwzWr1mOx3GAZPu+33mtXqMdl7mgFRJXolr0WJixj8xWAgeyBVWQq48SKqe6VSmE26TparZ02WzcamfBaR2JJnvy357JczA6Iwm302V7lSdlIMgzVTp5JSigOnABbvWZz72FfTEecnIOe6Ud0rlYLEWywEh4TkttTj80nMnfLs1ymf/RprGqPcZkBUrfmKy5dTXU8bMI1Wka14YukTfL3ja7o16lYq5/VGQCZ6pXQcdlvEo6DeCBVNnKYxzWottEYfq2m8ZrUWWqOH4g/kUsoXb6e6Lo5gc3DufPMNwxuWyjm9pRK94pG3Q8IrqjhNK/AmbI5YTSswwR8yDPbrOs19OJe5Una8GThVEp3qdSK+fjyv/vYq47uPJ8hUNik44BK93WnHLHyzwG5l4s2QcHe7DINtuk6cxULbSpLwDnkYEq+SfcXmzVTXJWESJupXr8+21G1cyrpEeGh44QeVgoBL9Bn2DMKCwvwdRoVXlJbNLsNgklvCm2K1Vopkvz/PkPj9+aw3qlQsvizDfbX9K5bsXcIrfV8psyQPAZjoM+2ZKtGXAm+GhOfYlmd+mG26XikSffM8Q+Kbq942FdIRwyBF12lssdDQh/9uL2Vd4vOtnxNqDuWZq8t2/seAS/QZ9gxCg0L9HUZAKGxIeI64PAkvrpIkvCauIfGqRl9xHTEMvnG7FzXcai31ZC+l5N+//5s3jTc5cfEEj3Z/VHWvLKlMRyZhZtWiL0ttNY0pVmulq9GD79cbVXwrJc+9qBRdL/VE/8mmT5honciAlgOYePVErmlyTame3xsBl+hVi94/2mpapUrwSmBonOdeVONS/jZqd9qZtGISvZv2ZtEdi8q8JZ8j4BK9qtGXnv2GQaKu09pioblK4koAaqhpDLdafVajn79tPsfOH+OjwR/5LclDgCV6KSWZjkxCzapFX1L7DYNpbj1pJlitKtkrAamhpvnkJuwHf37Ao0sepVO9TtzY8sZSP39RBNRcNzaHDUC16EtBYp7FOhLzmedFUZQrrTq4ikeXPMqNLW/kt3t/K9NlAz0JqESfYc8AUDX6IjhkGKycOpVDeSZwau3qSWNyTdTVupL0pFGUkspyZHHXd3fRolYL5g2bR/WQ6v4OKbBKN5mOTEC16L21fsYMFj3yCA6nE3NoKGPcRnY21zQmWK2qRq8oRXT43GGSzybz0eCPiAiN8Hc4QIAl+twWvarRFyrZMPh5/Hiw2zEDjsxMDuQZ2dlc01SCV5QiyrRnNzhzlgwsDwKqdJNzgVXppnAHdR2nw5G7FpfZZCI4MpKfpk5lbynPw60olcVbxlvEfxRP9ZDq9GnWx9/h5ArIFr0q3RSuqcVCUGgojsxMTGYzXZ54gv9OmJA79/rTVist82nNb3dbXq+9avErCpC9Huzff/k7PaN7MufmObSs3dLfIeUKqESfU6NXpZvCRbsWyzio6zS1WHJXU8qZoGuXrntM9NsNg6fcltd7w2pVyV5RgHrV61EjtAZ1qtYpV0keipDohRBmYD1wWEo5WAhRG/gSiAGSgFullKc8HDcAmA6YyV40/NVSiNsj1aIvmmhNI9qVpDOBYLf5atrm08vG0/J6KtErSnbeaVarWW437/KkKDX6x4Gdbs//D7BKKVsBVtfzy7h+ObwP3AjEAiOFELHFD7dgqkZffC01jaetVoZOmVJg2SZneT2T2Vzg8nqKUtkcOHWAzcc206NRD3+HcgWvWvRCiMbAIOBl4EnX5r8BFtfjOYAO5J17szuwV0q533We+a7jdpQk6PzklG5CzCG+OH3ASDQMdug6sRYLrd0SektNyzfB52ivabzhtryeas0rSrbfDv0GwE1tbvJzJFfytnQzDXgacJ8pv56U8iiAlPKoECLKw3GNgGS35ynAVZ7eQAgxFhgL0KRJEy/DupzD6QAos+W5KqJEw+Alt6kNnrNaL0v23mivaSrBK0oeOX3mL2Vd8nMkVyq0dCOEGAykSik3FOP8wsM26WlHKeUMKWWClDKhbt26xXgrcMjsRK+WEszfjjyLhOxQUxsoSol9sfULRi0YRbXgarSt09bf4VzBm6ZvL2CIEGIgEAZECCE+A44LIRq4WvMNgFQPx6YA0W7PGwNHShp0fuxOOwBmk0r0+YnNs0hIrKqxK0qJPf7z4zSKaMRXw78ismqkv8O5QqGJXko5EZgIIISwAE9JKe8SQrwO3A286vrzBw+H/wm0EkI0Aw4DtwN3lErkHqjSTeFaaxrPWa0ea/R5qf7yipK/RYmL+D35d5rXak61kGpEhEbQoV4Hf4flUUky4qvAV0KI+4BDwAgAIURDsrtRDpRS2oUQ44GlZHevnCWl3F7SoPOjSjfeaa1phdblVX95Rclf6oVUhswfglM6c7clnU7C5rCVy84gRUr0Ukqd7N41SCnTgX4e9jkCDHR7vhhYXJIgvZXTolelm5JT/eUVJX9Vg6sSWSWSGmE1ePOGN9mRtoNWtVuVyyQPATYyVrXoS09Of/mcFr3qL68o/1M9pDpzbp7DwHkD+XX/r7xz4zv+DqlAgZXoVYu+1Kj+8ori2QXbBR5Y+ABf7/gagDaRbfwcUeECK9EHaIt+p2Hwl67T0WKhXRkl3P2GQYqu00PNRa8ol1m8ZzFfbPuCUR1HMaHHBLo06OLvkAoVWIk+AFv0Ow2DiW4DnKZarT5P9vsNg3fc3vMxtV6souRqHNEYgOGxwytEkocAm48+EFv0f+UZ4PRXGQxw2pNnvdg9alCVogBwOuM0c7fMBSrW5ImqRV/OdcwzwKljGdwUbeV6T4fNhjkkhFaFvGeiYbBT12lXSL98RamopJS8uPJF3lr7FmczzzIybiS9m/b2d1heC6xEH4At+naaxlSrtUxr9M01jcesVvboOq0KqdEnGgavuJV5/lmMuXMUpbz7Zsc3TF45mR6Ne/CfQf+hc/3O/g6pSAIr0Qdgix6yk31Z3YTN4e16sTvzlJZ26rpK9ErAaR3ZmmBTMNtSt7H/1P4Kl+hVjV4pkXauMo/JbCYoJIR2qr+9EoA61e/E6jGrOW87z7CvhqEn6f4OqUgCK9EHaIu+PGutafzTamXElCmqbKMEtI71OvLxTR8D8MTSJ/wcTdEEVulGtej9wpu5cxSlIsu0ZxL/UTy703cTag7l7k53+zukIgmsRO9q0ZtEQH1RURTFzzYd28Tu9N3cF38f7974LlWCq/g7pCIJqIzokA5MwoQQntY7Ufwl2TD4bepUkg3D36EoSrFkObIAuLntzRUuyUOAtejtTrsq2/hQkmGwV9dpabEQ42WpJtkw+LRfv9w++aOsVqL9WObJb71cRSnInC1zCAsKqzAjYfMKqETvcDrUoiM+kmQYfODWX36c1epVsj+o6zjcRtke1PUyS/RJhsF+Xae56xdTomHwsttneDbPzeNthsEmXSfeYiFO/RKotHaf2M3Lq19m36l9XLBd4OSlkySfTeahrg/RMLyhv8MrloDKig7pUD1ufGRvnmkR9uq6V4m+qcWC2W2UbdMy6n6ZZBjM6NePc5mZ2EwmRr7/PqfT069YLzcn0W8zDCa4LbQyzWpVyb6SOXb+GC+ufJGPN35MWFAY3Rt1p07VOsRFxdGlQRfGdRvn7xCLLbASvdOhSjc+0jLPtAgtC0jYBwwjd1RtM01jlNXKQV2nqcVSotb8McPgqK7TwGKhfiHn2a/rnMvM5IjTiXQ6+WD8eB54771818vdlGehlU26rhJ9JWFz2Hj999eZ+ttUMh2ZPNDlASZbJhNVLcrfoZWawEr0qkXvMzGaxjirtdAa/QHD4F238sijVivNNK3E5ZpjhsFP/frhtNkwhYQw2GotMNk3t1iwmUxIZ/ZSbw6Hg7Pp6Tybz3q58XkWWolXA78CXpYji483fsy/f/83h84cYmi7obza71VaRbbyd2ilrtBEL4QIA1YBoa79v5FS/ksI0Qn4EKgOJAF3SinPejg+CTgHOAC7lDKh1KLPQ7XofStG0/JN8Dk3atMPHcot8ZCZyYrJkwmaPLnEif6oruN0nddps3FU1wtM9DGaxsj33+eD8eNxOBwEh4YS50ruAtil6wiglesccZrGNKtV1egriT8P/8ljPz/G2pS19IzuyYzBM+jfsr+/w/IZb1r0mUBfKeV5IUQw8JsQYgnwLvCUlHKlEOJe4B/ApHzO0UdKeaJ0Qs6fatH7h/uNWnNQEGazmVCnk3Cnk5Rly5izejV3l7C3TQOLBVNISG6LvoEXLW7L2LE06NCBbbpOnMVCG01jj2Hwb7dvHM9YrZcle5XgA1vqhVQm/jqRWZtnUbdqXeYNncftcbcHfJfsQhO9lFIC511Pg10/EmhDdksfYBmwlPwTfZlQLXr/cL9R6wS63HQTqT/+iJQSpORSZiZJJextU1/TGGy1el2jz9FG02jjtu+uPJOw7dL13ESvBLbVB1cz4usRnLx0kn/0/AeTek8iPDTc32GVCa8GTAkhzEKIzUAqsExKuQ7YBgxx7TICiM7ncAn8IoTYIIQYW8B7jBVCrBdCrE9LS/P6A7hTLXr/aOk2sZk5JIS69esDkNNGCjaZiClhzTvNMEjTdRoXIcl70jbPJGxtVS2+Upi+djp95vQhPDScDWM38Nr1r1WaJA9e3oyVUjqAzkKImsACIUQccC/wjhDieeBHwJbP4b2klEeEEFHAMiHELinlqrw7SSlnADMAEhISZNE/iivRqxZ9mct7ozZ961aE2YwEzGYz/d57r0St+TTD4Be3QVc3WK3ULeb5Wmkaz1it7NJ12losXrfm8/bJVyqOt423efKXJ7m57c3892//pUZYDX+HVOaK1OtGSnlaCKEDA6SUbwA3AAghWgOD8jnmiOvPVCHEAqA7/yv5lKpMe2aFWt4rkOTcqE0yDL6cMAGTw0GYycRN771H/Nh8v8h55Zhr0BWuG7HHdL3YiR6yk72d7C6Vdih0rv+cPvk5df2xXg4WU/znTMYZ9p/azzc7vuGV315hWLthzB8+v9IOqPSm101dIMuV5KsA1wH/FkJEuZK3CXiO7B44eY+tBpiklOdcj28AXizdj/A/GfYMQoNCfXV6xQu59XqnkywhOJWeXuJz1ncNusq5EVs/T7klyTDYp+u08LK1vdMweNYtcb9cyILr+93uQdhtNvZ7OVhMKXuf/fUZz694ngOnD+RuGxk3kjk3z6m0SR68a9E3AOYIIcxk1/S/klL+JIR4XAjxiGuf74DZAEKIhsBMKeVAoB7ZpZ6c95onpfy5tD9Ejgx7hmrR+1lRBlZ5q66mcYPVyjFdp77FcllrPskw+NAtaT/kRWt7a54bslt1vcBE3zzPur3NVV2/1GQ5slh+YDl7T+4ltm4svZr0IsQcUuTzOKWTKSunMHnlZK5qdBUPJzxMi9otiIuKo3Vkax9EXrF40+vmLyDew/bpwHQP248AA12P9wOdSh6mdzIdmYSaVYven7wdWFVUdTUtN8EnG0buSNt9eVrb+3Sd6kCqrhNlsVDHw/t3yJO4OxSSuGM0jbFWq6rRlzIj2WDUglHsO7Uvd1uzms2YOWQmfZv1LfBYu9NOYnoiaRfSiKwayScbP2HaummM6jiKj2/6WH2zzyOgvsvYnXaqBFW8KUQDTUEDq4oq74yZeWfDvH7atMuSdlRkJCvcXu9jtV6R7NtpGi9brWzVdTp4ueB6aX6myi7tQhqvrH6Fd/94l+ga0Xx363d0b9SdtSlrmWidyMhvR5I4PvGKm6ZO6WTZvmV8tvUzFuxcwIWsC5e93rtpb+bcPCfg+8QXR0AleodTda8MJJ5mzEzJMxtmZno6D1mt/DV3LmHAiSVLcGRkgJQ4MjLYP3eux1Z9baC160+lbPx+6Hfe/eNdFiYuJMOewZjOY3jzhjdzE/qw2GHE1Iyh28fdeGnVS7x+w+tAdieLz/76jNfXvM7u9N3UDKvJyLiR9G7am4bhDUm/lI5TOunfor9K8vkIrESvulcGFE8zZrbJMxtmeGQkB+bO5dCsWdjtdoKcTmrj6sMvJbs+/pga8fG0cev5c9wwWOQ2b84gq5V6qrXuU5P1ybyw8gVqhtVkdMfRPN7jcdrWaXvFfl0bdmV0p9G8tfYtthzfgkM62HxsMycvnSS+fjzzhs5jaLuhqjRTRIGV6FWLPqB4urEb7TYbZnhkJGsnTMDuasELIAs4DtQBnIB0OFg7fjy1OnQgypXMPc2boxK972xP3c4LK19gROwIZg6ZSURoRIH7Tx8wnRBzCJuPbcZsMjOkzRDuiLuD65pfp1rsxRRYiV616ANKfjd2o12zYW6YOjW7f73MHl8nyB6GnQ7U4H/DvqXDwTFdz030xZk3Rym+nSd2AvBMr2cKTfIANcJqMOOmGb4Oq1IJrESvWvQBp6CboI3cyzhBQdS/8UZ+W7SIi3Y7h0wmmgFSSsyhoZf1va+naQxymzdHteZLzu60czrjNGZhpkZYDUzif7OrrD+ynmBTMO2j2vsxwsotsBK9atFXKvU1jb9ZrRzWdRq55sDpaBgk6jqtLRaqQ27f+6g8ybyepqkEXwpSzqbw2JLHWLxnMZmOTACCTcEACCHoFd2LPSf30LJ2SzXGxY8CK9H7sEVvGDvR9a1ERkaQnn4Oi6UDmnblzSSlbNXXtMsmOWuuaTR3e543wSula+S3I1mXsi53gJLD6eD4heNIKbE77Szdt5QLtgs83fNpf4daqQVWovdRi37GjKWMH/8+WVlOsiu/DoSwc801sbz66v1omvpKqlRO6RfT6d6oO9NvvGLsJABv8mYZR6R44tU0xRWFL1r0hrGbRx6ZQVaWI+ddACdS2lm1agPXXPMohrG9VN9TUcozm8PGhJ8n0Oa9Nuw8sZP0SyWfz0jxrcBK9D5o0ev6DpxO9y5dwWSvqhgOmHA4bMyd67PpexSlXLE77TxrfZbp66bTOrI1z/d+niV3LvF3WEohAqt044MVpiyWWEJDQ8nIkEhpd23N6cgXDNg5duxkqb6nopRHDqeDzh92Znvadga0HMDCkQv9HZLipYBK9E7pLPXSjaa1wWp9Hl3fwenT53j77R/dyjhZANSvX6dU31NRyqMLWRdITE+kdWRrvr/te3+HoxRBQCV6h3Tk9t+1O+28+turzNgwgyBTEL2a9OKVvq8QXSO/FQ/zp2lt0LQ2ANx8c3fmzl3BzJkLcThMBAeHM3p04K4eryg5IkIjGBY7jPnb5nMm8wxRQVH+DknxUmDV6F2lm9MZpxk8bzCTVkwiLiqObo268d3O7+j8UWcW71lc7PNvT93O7/In2t5t46ulT/Lyyw+g62+iabGl+CkUpfzq3aQ3ALtO7PJzJEpRBFSL/lTGKd778z0+2vARTulkxuAZPND1AQD2pO/htm9uY8gXQ3jt+tewxFhoV6cdVYI9T2u8M20npzNOk9AwASEE7/3xHn//5e84pROAKkFVWHTHIrRmKskrlUfdanUBqBVWy8+RKEURUIn+1va3knwmmWuaXMOt7W+la8Ouua+1imzFyntWMuyrYfz9l78DEBYUxhM9nmDi1RMJDw3nYtZFdp/YzfR105mzZQ4AVYOrIqXkkv0SN7W+iRk3zeCC7QLX/vdantefZ3Wz1X75rIpSFtYkr0FKSWTVSBLTE3n3j3cBqBlW07+BKUUSUIn+y+FfFvh6eGg4S+9aysajG0k6ncSCXQuY+ttU3l77NnWr1iXlbAoSSZApiIlXT6Rz/c6sSV6DWZjp3bQ3N7W5KfcegCXGwm+HfiuLj6UofrHrxC56zep12baqwVX5z6D/FOtel+I/AZXovSGEoGvDrnRt2JVhscN47KrHmL9tPicunqBl7ZbE1o2le6PuNKnRBMj+luBJh6gOfL71c8YvHk/ryNY0rdGUFrVb0Kp2KzVXthIQchbTblGrBZN6T6JVZCs61etEtZBqfo5MKSohXVO85ruDEGHAKrJHCQUB30gp/yWE6AR8CFQHkoA7pZRnPRw/gOy1Zc1kLxr+amFBJSQkyPXr1xfxo5St0xmnuef7e1i6bykZ9ozc7SZhomuDrtzV8S7Gdh2rJnJS/Or4+eOsPrSak5dO0q1hN+IbXLH8c4Ee/ulhPtzwIa0jW/Pfv/0XLVrNHVReCSE2SCkTPL7mRaIXQDUp5XkhRDDwG/A48C7wlJRypRDiXqCZlHJSnmPNQCJwPZAC/AmMlFLuKOg9K0KizyGlJO1iGgdPH2Tvyb3sSNvBz/t+Zv2R9TSr2Ywvh39Jt0bd/B2mUgntPbmX+I/iOW87n7vtX9f+i8mWyV6fQ0rJtzu/5Zlfn+HIuSN8M+IbBrUe5INolZIqUaLPc6KqZCf6h4FlQA0ppRRCRANLpZSxefbXgMlSyv6u5xMBpJRTC3qfipTo8/Pr/l+5/8f7uZh1kZ2P7CSyaqS/Q1IqkdQLqdz/4/38su8Xfr7rZ5rWaMrklZOZu2UuYzqPoXaV2rSObM2ojqPy7XnmLuVsCtFvR3N98+v5ZdQvZfAJlKIqKNF71Y9eCGEWQmwGUoFlUsp1wDZgiGuXEYCnuzONgGS35ymubZ7eY6wQYr0QYn1aWpo3YZVr1zW/jh9u/4G0i2nM2jTL3+EolcT6I+sZ8fUIGr3ViIWJC3nB8gKWGAvNajXjrRveomF4Q2Zvns37f77Pgz89yPWfXs/pjNOFnnfmxpkA3Bt/r48/geILXiV6KaVDStkZaAx0F0LEAfcCjwghNpA9w5fNw6GeFnj0+BVCSjlDSpkgpUyoW7euV8GXd53qdyI6Ipole5fk9r9XFF9JOp1Enzl9WLZvGY91f4zt47bzzNXP5L4eWTWSgxMOkjUpi4v/vMi8ofP44/AfDJo3CJvD03/f//ly+5d0bdCV2+Nu9/XHUHygSCNjpZSnAR0YIKXcJaW8QUrZFfgC2OfhkBQub+k3Bo4UL9SK6ameT7EiaQUjvh7BxayL/g5HCVDnbefp9GEnzMLM2vvX8mb/N4mte+VgviBTEEGmIIQQjOwwkk9v+ZQ1yWt4dPGjl+23/MBy+s7pS89PejJz40xqhtVka+pWPtn4SVl9JKUUFZrohRB1hRA1XY+rANcBu4QQUa5tJuA5snvg5PUn0EoI0UwIEQLcDvxYSrFXCI9d9RjT+k9jwc4FWP5rIeVsir9DUgJQ/8/6czbzLP8Z9B/a1vF+5bPb4m6jU71OzNg4g63HtwLw1/G/GPDZAPad2keGPYMHFj5AytkUbA4b9y+8n9UH1SDBisabFn0DYIUQ4i+yE/cyKeVPwEghRCKwi+xW+mwAIURDIcRiAJk9r+94YCmwE/hKSlnpVul4vMfjLLhtAbtO7KLPnD4cOVepvtQoPmR32hnw2QDWJK/BJExFKq1IKXlu+XNsOb7lsrEjX2z9Aqd0smHsBjaM3cDsv82mfvX6VAmqwlWNrqJT/U6++jiKjxSp101ZCYReN54YyQY3fHYDLWq1YNODm8juuaooxff8iueZsmoK9avX5+CEg4SYQ7w+9vdDv3P17KsJDwnn2FPHsDvtzNo0i0krJtEhqgNr7lvjw8iV0lZQr5tKNzLWn7RojSl9pvDE0ic4dOYQTWs29XdISgWXdiG7h9qeR/cUKckDdKzXkasaXcW6w+to8nYTztnOYXPYsMRYmP232b4IV/ETlejLWPWQ6gCqNa+Uih6Ne/Dhhg/Zd3JfkUsq4aHhrLlvDd/t/I7FexZTK6wWIzuMJKGhx0ahUoGpRF/Gcrqx5cwjoijFlXYhjZmbZlItuBrt6rYr1jlMwsTw2OEMjx1eytEp5UlALTxSEXSql93qevW3V1XfeqXILmVdYvra6Vz/6fU0mdaEdSnrmD5gepHLNkrlom7GljEpJY8ueZT3/3yfqsFVaVW7Fa0jW9M6sjXx9ePRojUahjf0+lx2p51gc7CPo1bKg0WJi3jwpwc5fO4w7eu2p1+zfjyY8KDH/vJK5aNuxpYjQgjevfFdrm16LWuS15B4MpFNxzbx3c7vcEhH7n4xNWN40fIi7aPaEx4Sjtlk5sCpA2w5voU/Dv/BH4f/4OCZgzilk/rV6zOs3TAGtx5M32Z9VesuAF3KusRt39xGdI1o9KE618Zc6++QlApEtejLiUx7JpuPbWZN8hqe/OXJAvdtUqMJ3Rt1p01kG0LMIWxL3cbXO74GsmuujSMa07ZOW65tei1jOo+hQXiDsvgI5dq5zHOsP7KeTEcm/Zr1q3DfguxOO3Veq0OV4Cq8dcNbjOww0t8hKeVMqc1eWVYqY6LPy+F0sCNtB3tP7uVC1gWyHFk0qdGEuKg46lWvd8X+e0/uZeHuhZzKOMX+U/vZmrqVv47/RWSVSHaN30WdqnX88Cn8a1vqNj5a/xErD65kW+o2pNs0S8f+fszjdSzPVh1cxaNLHuWv43+x4u4VWGIs/g5JKUdUoq+k1qaspecnPRnXbRzv3PhO7jKIgSYxPZG3jbf588ifXLJfon71+iw/sBzIXhfYEmOhR6MeXNX4Kg6cOsC4xeN484Y3eVIr+JtTeXQm4ww1/10TAPmv8vd/V/EfVaOvpHo07sH9Xe7n/T/fZ+XBlfRr1o9uDbsxtN1Qr+Yg90RKSfLZZLanbufkpZPUr16fqxpflTs+oKztSNtBnzl9uGC7QM/onlQPqc7u9N0APNnjSf55zT8vWwtgZ9pOACJCI/wSb0nVCKuR+/i87bzfrrtSsahEH+A+GvwR1zS5hhkbZzBjwwymr5tO7429WXnPSq+O33tyL+tS1nHwzEH+OPwH6w6v49j5Y5ftUy24GvfG38tzvZ8jqlqULz7GZRxOB1uOb2H+tvnM2jSLYHMw68eu92oyr5UHsz/3tU0r7s3MJ3s8ydtr3ybDnqESveIVlegDnBCCUZ1GMarTKBxOB1NWTeGFlS+w5diWAkdSOqWTB358gFmb/7doSuvI1lzf/Hq6N+pO5/qdiaoWxYFTB5i/fT7v//k+7//5Pr2ie9G+bnvO2c5Rr1o9hsUOo2XtltStWrfEo4FPZ5zmkcWP8N3O78iwZxBkCqJ/i/68ccMbXs/YmPOL6P0/32fagGklisdfluxdQteGXSvlfReleFSNvpJJv5hO47cb0yayDSPjRhJdI5rO9TvTrk67yxLxkj1LGDhvIOMSxvFwt4dpFN6IWlVq5XveXSd2MW/rPBbvWcyB0wc4eenkZa+Hh4RzY6sbeajrQ1hiLMVK+jd+fiPW/VYe6PIAPRr3YGCrgcVaovHxJY/zzh/vsOWhLXSs17HIx/vb2IVj+Xzr5xz9+9EKW4JSSp+6GatcZvam2by0+iX2n9qfu61ReCOua34dfZv1pU1kGyatmMTvyb+T/nQ6YUFhRX6Ps5lnST6TzMEz2Yumb0/dztc7vuZUxik61+/MTyN/olHE/1aVPHHxBNtTt9MqspXHAWPf7/qeW768hSl9pvBc7+eK98Fd9qTvofV7rflkyCcVcmm8Pw//SfeZ3Xn2mmd5qe9L/g5HKSdUolc8OpNxhsPnDrMmeQ3L9i/Dut9K+qX03Nen9Z/G4z0eL7X3u5R1iS+3f8lDPz3EffH38f6g9zl56SSTlk9i1uZZZNgzgOxpItrVbUeGPYPztvOczjjN+iPria8fz+oxq6kWUq1EcTicDqq+UpXHr3qc165/rTQ+Wpm7bu51HD1/lO3jKt3yDko+VKJXvOKUTrYe30ry2WRa1GpR7ImyCnPTFzexbN8y7uxwJ4v3LubExRPc0+kehrYbytbUrSzas4ij544SFhRGtZBqBJuCuan1TTzS/RGqBlctlRi6fNSFLGcWG8ZuKLcjibcc28Ibxhu0iWxDnap1iI6IpnpIdZJOJ/HE0idoFdmKdfev83eYSjmhEr1Srhw9d5QJSyewdO9S2tRpw4eDPiS+QXyZxvDV9q+47Zvb6BDVgQ8Hf0jP6J5l+v6FueHTG1i2f1m+r7eo1YKf7/qZlrVblmFUSnmmEr2iePDj7h8Zt2gch88dplO9TnRt0JWI0AgiQiMIDw0nxBxCj8Y96NawW5muH7Dp6Ca6zOhCWFAYh588TPWQ6qRfTGf/qf1kOjKpU7UOcVFxATsATimeEg2YEkKEAauAUNf+30gp/yWE6Ez2guBhgB0YJ6X8w8PxScA5wAHY8wtEUcrakDZDsMRYmLtlLl9s+4Kl+5ZyznaOc5nnLpsuoUuDLjx3zXPc0u6WMokr7WL2qlFL71pK7Sq1AWgQ3kDNWaQUmzf96DOBvlLK80KIYOA3IcQS4EXgBSnlEiHEQOA1wJLPOfpIKU+USsSKUooiQiMY330847uPz93mlE4uZl3kvO083+/6nnfWvcPQr4bywcAPeLjbwz6PacuxLQC5i3UrSkkV+t1PZjvvehrs+pGun5xOvDWAIz6JUFHKmEmYqB5SnfrV6/NQwkNsfHAjg1sPZtzicTy97GmyHFk+ff8ZG2fQu2lvYmrG+PR9lMrDqyKfEMIshNgMpALLpJTrgAnA60KIZOANYGI+h0vgFyHEBiHE2JKHrChlKywojO9u/Y6Huj7E62tep8cnPViwcwGXsi6V+ntl2DNIOZuSuxKZopQGrxK9lNIhpewMNAa6CyHigIeBJ6SU0cATwCf5HN5LStkFuBF4RAjR29NOQoixQoj1Qoj1aWlpRf0ciuJTweZg/jP4P3wz4huOnDvC0K+G0uDNBrxlvFWq7/PZX5+RYc9gSJshpXpepXIrcq8bIcS/gAvAJKCmlFKK7C4JZ6SUBY7HFkJMBs5LKd8oaD/V60Ypz7IcWaxIWsGbxpv8su8X/rj/D7o16lbi86ZfTKfv3L5cyrrE7vG7y7Snj1LxlbTXTV0gS0p5WghRBbgO+DfZNflrAR3oC+zxcGw1wCSlPOd6fAPZN3EVpcIKNgdzQ4sb6NawG3Vfr8v3u74vNNFLKbNnAj28jrUpa9l8bDNNazYl2BRMytkUDp87zL6T+3BIBz/c/oNK8kqp8qbXTQNgjhDCTHap5ysp5U9CiNPAdCFEEJABjAUQQjQEZkopBwL1gAWuf7RBwDwp5c+l/zEUpezVqlILS4yFmZtmMiZ+zGWDl5LPJPN78u+sSV7DxqMb+ev4X5yznQOgekh1OtXrhJ6kYxZmGkU0Ii4qjpvb3MzIDiMr5ERrSvmmBkwpSgmsSV5D3zl9yXRkEhEaQWSVSE5lnOJ0xmkAqgZXpXP9znSu15n4BvFc1egqYuvGYjaZ/Ru4EnDUClOK4iM9o3uy77F9zN82n4NnDpJ+KZ3aYbVpFdmKXtG96FivY4VbiFwJPCrRK0oJNYpoxN97/t3fYShKvtRkGYqiKAFOJXpFUZQApxK9oihKgFOJXlEUJcCpRK8oihLgVKJXFEUJcCrRK4qiBDiV6BVFUQJcuZwCQQiRBhwE6gBqZSrP1LXJn7o2nqnrkr9AuDZNpZR1Pb1QLhN9DiHEerXGrGfq2uRPXRvP1HXJX6BfG1W6URRFCXAq0SuKogS48p7oZ/g7gHJMXZv8qWvjmbou+Qvoa1Oua/SKoihKyZX3Fr2iKIpSQirRK4qiBLhymeiFEJ2FEGuFEJuFEOuFEN1d22OEEJdc2zcLIT70d6xlKb/r4vZ6EyHEeSHEU/6K0V8K+DfT3e3fyxYhxC3+jrWsFXBtrhdCbBBCbHX92dffsZa1Aq5NpBBihev/03v+jrPEpJTl7gf4BbjR9XggoLsexwDb/B1febsubq9/C3wNPOXvWMvLtQGqAkGuxw2A1JznleWngGsTDzR0PY4DDvs71nJ0baoBVwMPAe/5O86S/pTXpQQlEOF6XAM44sdYypN8r4sQ4mZgP3Ch7MMqFzxeGynlRbd9wlz7VTb5XZtNbvtsB8KEEKFSyswyjs+f8rs2F4DfhBAt/RVYaSqXvW6EEO2ApYAgu7zUU0p5UAgRQ/Y/yETgLPCclHK13wItYwVcl2rAr8D1wFPAeSnlG/6LtOzld21cr10FzAKaAqOklAv8FqgfFHRt3PYZDjwkpbzODyH6TWHXRghxD5AgpRzvnwhLh99a9EKIX4H6Hl56FugHPCGl/FYIcSvwCXAdcBRoIqVMF0J0Bb4XQrSXUp4ts8B9rJjX5QXgbSnleSFE2QVbxop5bZBSrgPau/5TzxFCLJFSZpRV3GWhuNfGdWx74N/ADWURa1krybUJFOW1RX8GqCmllCI7c52RUkZ42E8nux69vqxj9If8rosQYjUQ7dqtJuAEnpdSVvybSF4qwr+ZFcA/Ksu/GSj42gghGgPLgTFSyt/9Gac/FPbvJlBa9OWy1w3ZdbJrXY/7AnsAhBB1hRBm1+PmQCuy69KVhcfrIqW8RkoZI6WMAaYBr1SmJO+S37+ZZkKIINfjpkAbIMkfAfpRftemJrAImFgZk7yLx2sTaMrrzdgHgOmu/6AZwFjX9t7Ai0IIO+Agu6Z40k8x+kN+10XJ/9pcDfyfECKL7G8646SUFX062qLK79qMB1oCk4QQk1zbbpBSpvohRn/J9/+UECKJ7Bu1Ia7ODjdIKXf4I8iSKpelG0VRFKX0lNfSjaIoilJKVKJXFEUJcCrRK4qiBDiV6BVFUQKcSvSKoigBTiV6RVGUAKcSvaIoSoD7f5eqEsiskoXdAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ... And where are the OVERUSED tracts?\n",
    "minPlot = 1.2\n",
    "print(\"here is a map of tracts that were used more than {0} of expectation\".format(minPlot) )\n",
    "for t in range(nTracts):\n",
    "    if(tractUse[t] >minPlot and tractUse[t] > 0.05):  #ignore skipped tracts\n",
    "        redd = min(max( 0, ( HDvGOP[t] - 0.5) * 3.0 ),1)\n",
    "        bluu = min(max( 0, (0.5 - HDvGOP[t]) * 3.0 ),1)\n",
    "        plt.scatter(tractCPx[t],tractCPy[t],marker='.',color=(redd, 0,bluu ) )\n",
    "\n",
    "x,y = wholeMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "19bfa7c8-0449-4182-8ed9-f5a1c1276f03",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here is a map of 1 tracts that were used more than 1.6 of expectation\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ... And where are the REALLY OVERUSED tracts?\n",
    "minPlot = 1.6\n",
    "counter = 0\n",
    "for t in range(nTracts):\n",
    "    if(tractUse[t] >minPlot and tractUse[t] > 0.05):  #ignore skipped tracts\n",
    "        redd = min(max( 0, ( HDvGOP[t] - 0.5) * 3.0 ),1)\n",
    "        bluu = min(max( 0, (0.5 - HDvGOP[t]) * 3.0 ),1)\n",
    "        plt.scatter(tractCPx[t],tractCPy[t],marker='.',color=(redd, 0,bluu ) )\n",
    "        counter +=1\n",
    "\n",
    "print(\"here is a map of {0} tracts that were used more than {1} of expectation\".format(counter, minPlot) )\n",
    "x,y = wholeMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "f3e9bde3-06f6-402d-bce1-62b5631e8db0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# CORRELATION OF TRACT UNDER-USAGE IN OTHER TRACT'S HOME DISTRICTS vs. being near a boundary\n",
    "fig, ax = plt.subplots()\n",
    "plt.scatter(tractUse,nearEdge,marker='.' )\n",
    "ax.set(xlabel=\"tract use vs. expectation\", ylabel=\"number of unfilled wedges - max = \"+str(nWedges))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "6bb5c12a-a6a4-4cb1-9026-d227bc11c2ea",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.11938648154153417 = std dev of TRACT usage.  Here is its weighted histogram\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LET'S VISUALIZE OUR tract usage in a histogram\n",
    "n_bins=50\n",
    "avgTractUse = 0.\n",
    "statePop = np.sum(tractPop)\n",
    "for t in range(nTracts):\n",
    "    avgTractUse += tractUse[t] * tractPop[t]/statePop\n",
    "sumVarTractUse = 0.\n",
    "for t in range(nTracts):\n",
    "    sumVarTractUse += (tractUse[t]-avgTractUse)**2 *tractPop[t]/statePop\n",
    "sdTractUse = sumVarTractUse ** 0.5\n",
    "\n",
    "print(sdTractUse,\"= std dev of TRACT usage.  Here is its weighted histogram\")\n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(tractUse, bins=n_bins, weights=tractPop)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "121f9869-3d25-4594-93b3-64a57a95aca8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.10870755997135496 = std dev of PRECINCT usage.  Here is its weighted histogram\n",
      "this is a histogram of PRECINCT usage by precinct\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAXB0lEQVR4nO3df6zd9X3f8eerOGGsLcQGg5hNZjq8toCWNHiGLVuVxpvthmlmEkjej2JFlqwxFmXSpNX0j1kDeTL/lIRtUKHgYlhbsGg6vGaEWWZZNpUYzEpCgDB7gYEFw06uS2knqEze++N8PI5vju89Nva9n3v9fEhH55z3+X4+531sf/Xy93s+93tTVUiS1JufmO0GJEkaxYCSJHXJgJIkdcmAkiR1yYCSJHVpwWw3cLpddNFFtWzZstluQ5I0pmefffYHVbV4cn3eBdSyZcvYt2/fbLchSRpTkv89qu4pPklSlwwoSVKXDChJUpcMKElSlwwoSVKXDChJUpcMKElSlwwoSVKXDChJUpcMKElSl+bdpY4kzQ/LNn9tZP3VbdfPcCeaLR5BSZK6ZEBJkrrkKT5J88aJTguCpwbnIo+gJEldMqAkSV0yoCRJXRoroJJ8LMmjSb6X5KUkfy3JoiS7k+xv9wuHtr8tyYEkLydZM1S/Jsnz7bW7k6TVz03ySKvvTbJsaMyG9h77k2w4jZ9dktSxcY+gvgx8vap+DvgE8BKwGdhTVcuBPe05Sa4E1gNXAWuBe5Kc0+a5F9gELG+3ta2+EThSVVcAdwF3trkWAVuAa4GVwJbhIJQkzV/TBlSS84FfBO4HqKo/q6o/AtYBO9pmO4Ab2uN1wMNV9V5VvQIcAFYmuRQ4v6qeqqoCHpw05thcjwKr2tHVGmB3VU1U1RFgNx+EmiRpHhvnCOpngMPAbyb5wyRfSfKTwCVV9SZAu7+4bb8EeH1o/MFWW9IeT64fN6aqjgJvAxdOMZckaZ4b5+egFgCfAr5QVXuTfJl2Ou8EMqJWU9RPdcwHb5hsYnDqkI9//ONTtCZprpvqZ500v4xzBHUQOFhVe9vzRxkE1lvttB3t/tDQ9pcNjV8KvNHqS0fUjxuTZAFwATAxxVzHqar7qmpFVa1YvHjxGB9JktS7aQOqqv4P8HqSn22lVcCLwC7g2Kq6DcBj7fEuYH1bmXc5g8UQT7fTgO8kua59v3TzpDHH5roReLJ9T/UEsDrJwrY4YnWrSZLmuXEvdfQF4LeSfBT4PvB5BuG2M8lG4DXgJoCqeiHJTgYhdhS4tareb/PcAjwAnAc83m4wWIDxUJIDDI6c1re5JpLcATzTtru9qiZO8bNKkuaQsQKqqp4DVox4adUJtt8KbB1R3wdcPaL+Li3gRry2Hdg+Tp+SpPnDK0lIkrpkQEmSumRASZK6ZEBJkrpkQEmSumRASZK6ZEBJkro07g/qStJpN5PX1TvRe7267foZ60EnxyMoSVKXDChJUpcMKElSlwwoSVKXDChJUpcMKElSlwwoSVKXDChJUpcMKElSlwwoSVKXDChJUpcMKElSlwwoSVKXDChJUpcMKElSlwwoSVKXDChJUpcMKElSlwwoSVKXDChJUpcMKElSl8YKqCSvJnk+yXNJ9rXaoiS7k+xv9wuHtr8tyYEkLydZM1S/ps1zIMndSdLq5yZ5pNX3Jlk2NGZDe4/9STactk8uSerayRxB/VJVfbKqVrTnm4E9VbUc2NOek+RKYD1wFbAWuCfJOW3MvcAmYHm7rW31jcCRqroCuAu4s821CNgCXAusBLYMB6Ekaf76MKf41gE72uMdwA1D9Yer6r2qegU4AKxMcilwflU9VVUFPDhpzLG5HgVWtaOrNcDuqpqoqiPAbj4INUnSPDZuQBXwn5M8m2RTq11SVW8CtPuLW30J8PrQ2IOttqQ9nlw/bkxVHQXeBi6cYq7jJNmUZF+SfYcPHx7zI0mSerZgzO0+XVVvJLkY2J3ke1NsmxG1mqJ+qmM+KFTdB9wHsGLFih97XZI094x1BFVVb7T7Q8DvMfg+6K122o52f6htfhC4bGj4UuCNVl86on7cmCQLgAuAiSnmkiTNc9MGVJKfTPLTxx4Dq4HvAruAY6vqNgCPtce7gPVtZd7lDBZDPN1OA76T5Lr2/dLNk8Ycm+tG4Mn2PdUTwOokC9viiNWtJkma58Y5xXcJ8HttRfgC4Ler6utJngF2JtkIvAbcBFBVLyTZCbwIHAVurar321y3AA8A5wGPtxvA/cBDSQ4wOHJa3+aaSHIH8Ezb7vaqmvgQn1eSNEdMG1BV9X3gEyPqPwRWnWDMVmDriPo+4OoR9XdpATfite3A9un6lCTNL15JQpLUJQNKktQlA0qS1CUDSpLUJQNKktQlA0qS1CUDSpLUJQNKktQlA0qS1CUDSpLUJQNKktQlA0qS1CUDSpLUJQNKktSlcX/luySdkmWbvzbbLWiO8ghKktQlA0qS1CUDSpLUJQNKktQlA0qS1CUDSpLUJQNKktQlA0qS1CUDSpLUJQNKktQlA0qS1CWvxSfprDbVtQJf3Xb9DHaiyTyCkiR1yYCSJHVp7IBKck6SP0zy++35oiS7k+xv9wuHtr0tyYEkLydZM1S/Jsnz7bW7k6TVz03ySKvvTbJsaMyG9h77k2w4LZ9aktS9kzmC+iLw0tDzzcCeqloO7GnPSXIlsB64ClgL3JPknDbmXmATsLzd1rb6RuBIVV0B3AXc2eZaBGwBrgVWAluGg1CSNH+NFVBJlgLXA18ZKq8DdrTHO4AbhuoPV9V7VfUKcABYmeRS4PyqeqqqCnhw0phjcz0KrGpHV2uA3VU1UVVHgN18EGqSpHls3COoLwH/AvjRUO2SqnoToN1f3OpLgNeHtjvYakva48n148ZU1VHgbeDCKeY6TpJNSfYl2Xf48OExP5IkqWfTBlSSvwMcqqpnx5wzI2o1Rf1Ux3xQqLqvqlZU1YrFixeP2aYkqWfjHEF9Gvi7SV4FHgY+m+TfA2+103a0+0Nt+4PAZUPjlwJvtPrSEfXjxiRZAFwATEwxlyRpnps2oKrqtqpaWlXLGCx+eLKq/hGwCzi2qm4D8Fh7vAtY31bmXc5gMcTT7TTgO0mua98v3TxpzLG5bmzvUcATwOokC9viiNWtJkma5z7MlSS2ATuTbAReA24CqKoXkuwEXgSOArdW1fttzC3AA8B5wOPtBnA/8FCSAwyOnNa3uSaS3AE807a7vaomPkTPkqQ54qQCqqq+AXyjPf4hsOoE220Fto6o7wOuHlF/lxZwI17bDmw/mT4lSXOfV5KQJHXJgJIkdcmAkiR1yYCSJHXJgJIkdcmAkiR1yYCSJHXJgJIkdcmAkiR1yYCSJHXJgJIkdcmAkiR1yYCSJHXJgJIkdcmAkiR1yYCSJHXJgJIkdcmAkiR1yYCSJHXJgJIkdcmAkiR1yYCSJHXJgJIkdWnBbDcgSb1atvlrJ3zt1W3Xz2AnZyePoCRJXTKgJEldMqAkSV3yOyhJp8VU39dIp8IjKElSl6YNqCR/LsnTSb6d5IUk/6rVFyXZnWR/u184NOa2JAeSvJxkzVD9miTPt9fuTpJWPzfJI62+N8myoTEb2nvsT7LhtH56SVK3xjmCeg/4bFV9AvgksDbJdcBmYE9VLQf2tOckuRJYD1wFrAXuSXJOm+teYBOwvN3WtvpG4EhVXQHcBdzZ5loEbAGuBVYCW4aDUJI0f00bUDXwJ+3pR9qtgHXAjlbfAdzQHq8DHq6q96rqFeAAsDLJpcD5VfVUVRXw4KQxx+Z6FFjVjq7WALuraqKqjgC7+SDUJEnz2FjfQSU5J8lzwCEGgbEXuKSq3gRo9xe3zZcArw8NP9hqS9rjyfXjxlTVUeBt4MIp5prc36Yk+5LsO3z48DgfSZLUubECqqrer6pPAksZHA1dPcXmGTXFFPVTHTPc331VtaKqVixevHiK1iRJc8VJreKrqj8CvsHgNNtb7bQd7f5Q2+wgcNnQsKXAG62+dET9uDFJFgAXABNTzCVJmufGWcW3OMnH2uPzgL8FfA/YBRxbVbcBeKw93gWsbyvzLmewGOLpdhrwnSTXte+Xbp405thcNwJPtu+pngBWJ1nYFkesbjVJ0jw3zg/qXgrsaCvxfgLYWVW/n+QpYGeSjcBrwE0AVfVCkp3Ai8BR4Naqer/NdQvwAHAe8Hi7AdwPPJTkAIMjp/VtrokkdwDPtO1ur6qJD/OBJUlzw7QBVVXfAX5hRP2HwKoTjNkKbB1R3wf82PdXVfUuLeBGvLYd2D5dn5Kk+cUrSUiSumRASZK6ZEBJkrpkQEmSumRASZK6ZEBJkrpkQEmSumRASZK6ZEBJkrpkQEmSumRASZK6ZEBJkrpkQEmSujTOr9uQJE2ybPPXRtZf3Xb9DHcyf3kEJUnqkgElSeqSASVJ6pIBJUnqkgElSeqSASVJ6pIBJUnqkgElSeqSASVJ6pIBJUnqkgElSeqSASVJ6pIXi5U0thNdIFU6EzyCkiR1yYCSJHVp2oBKclmS/5LkpSQvJPliqy9KsjvJ/na/cGjMbUkOJHk5yZqh+jVJnm+v3Z0krX5ukkdafW+SZUNjNrT32J9kw2n99JKkbo1zBHUU+OdV9fPAdcCtSa4ENgN7qmo5sKc9p722HrgKWAvck+ScNte9wCZgebutbfWNwJGqugK4C7izzbUI2AJcC6wEtgwHoSRp/po2oKrqzar6H+3xO8BLwBJgHbCjbbYDuKE9Xgc8XFXvVdUrwAFgZZJLgfOr6qmqKuDBSWOOzfUosKodXa0BdlfVRFUdAXbzQahJkuaxk/oOqp16+wVgL3BJVb0JgxADLm6bLQFeHxp2sNWWtMeT68eNqaqjwNvAhVPMNbmvTUn2Jdl3+PDhk/lIkqROjR1QSX4K+F3gn1XVH0+16YhaTVE/1TEfFKruq6oVVbVi8eLFU7QmSZorxgqoJB9hEE6/VVVfbeW32mk72v2hVj8IXDY0fCnwRqsvHVE/bkySBcAFwMQUc0mS5rlxVvEFuB94qap+feilXcCxVXUbgMeG6uvbyrzLGSyGeLqdBnwnyXVtzpsnjTk2143Ak+17qieA1UkWtsURq1tNkjTPjXMliU8DvwI8n+S5Vvs1YBuwM8lG4DXgJoCqeiHJTuBFBisAb62q99u4W4AHgPOAx9sNBgH4UJIDDI6c1re5JpLcATzTtru9qiZO7aNKkuaSaQOqqv47o78LAlh1gjFbga0j6vuAq0fU36UF3IjXtgPbp+tTkjS/eCUJSVKXDChJUpcMKElSlwwoSVKXDChJUpcMKElSlwwoSVKXDChJUpfGuZKEpLPMss1fm+0WJI+gJEl9MqAkSV0yoCRJXTKgJEldMqAkSV1yFZ8knUZTrYB8ddv1M9jJ3OcRlCSpSwaUJKlLBpQkqUsGlCSpSy6SkKQZ4gKKk+MRlCSpSwaUJKlLBpQkqUsGlCSpSwaUJKlLBpQkqUsGlCSpSwaUJKlLBpQkqUvTBlSS7UkOJfnuUG1Rkt1J9rf7hUOv3ZbkQJKXk6wZql+T5Pn22t1J0urnJnmk1fcmWTY0ZkN7j/1JNpy2Ty1J6t44R1APAGsn1TYDe6pqObCnPSfJlcB64Ko25p4k57Qx9wKbgOXtdmzOjcCRqroCuAu4s821CNgCXAusBLYMB6EkaX6bNqCq6pvAxKTyOmBHe7wDuGGo/nBVvVdVrwAHgJVJLgXOr6qnqqqAByeNOTbXo8CqdnS1BthdVRNVdQTYzY8HpSRpnjrV76Auqao3Adr9xa2+BHh9aLuDrbakPZ5cP25MVR0F3gYunGKuH5NkU5J9SfYdPnz4FD+SJKknp3uRREbUaor6qY45vlh1X1WtqKoVixcvHqtRSVLfTjWg3mqn7Wj3h1r9IHDZ0HZLgTdafemI+nFjkiwALmBwSvFEc0mSzgKn+vugdgEbgG3t/rGh+m8n+XXgLzBYDPF0Vb2f5J0k1wF7gZuBfzNprqeAG4Enq6qSPAH866GFEauB206xX0mTTPW7iaQeTBtQSX4H+AxwUZKDDFbWbQN2JtkIvAbcBFBVLyTZCbwIHAVurar321S3MFgReB7weLsB3A88lOQAgyOn9W2uiSR3AM+07W6vqsmLNSRJ89S0AVVVf/8EL606wfZbga0j6vuAq0fU36UF3IjXtgPbp+tRkjT/eCUJSVKXDChJUpcMKElSlwwoSVKXDChJUpcMKElSl071B3UlSafRiX5w+tVt189wJ/3wCEqS1CUDSpLUJQNKktQlA0qS1CUDSpLUJVfxSfOYv1Jj7pvq73C+r/AzoKR5wCDSfOQpPklSlzyCkuYIj5J0tvEISpLUJQNKktQlA0qS1CUDSpLUJRdJSNIcNd+vgO4RlCSpSwaUJKlLBpQkqUsGlCSpSy6SkDri1SKkD3gEJUnqkgElSeqSp/gkaZ6ZL79Dak4EVJK1wJeBc4CvVNW2WW5J+lD8rkmaXvcBleQc4N8Bfxs4CDyTZFdVvTi7nUnS3HMq/zmaraOu7gMKWAkcqKrvAyR5GFgHGFDqmkdJmi9m65ThXAioJcDrQ88PAtcOb5BkE7CpPf2TJC9/yPe8CPjBh5xjtszl3mFu92/vs2Mu9w5zu/+Lcudp6f0vjirOhYDKiFod96TqPuC+0/aGyb6qWnG65ptJc7l3mNv92/vsmMu9w9zu/0z3PheWmR8ELht6vhR4Y5Z6kSTNkLkQUM8Ay5NcnuSjwHpg1yz3JEk6w7o/xVdVR5P8U+AJBsvMt1fVC2f4bU/b6cJZMJd7h7ndv73PjrncO8zt/s9o76mq6beSJGmGzYVTfJKks5ABJUnq0lkdUEnWJnk5yYEkm0e8niR3t9e/k+RTs9HnKGP0/g9bz99J8gdJPjEbfY4yXe9D2/3VJO8nuXEm+5vKOL0n+UyS55K8kOS/znSPUxnj380FSf5jkm+3/j8/G31OlmR7kkNJvnuC17vdV2Gs/nveX6fsfWi707+/VtVZeWOw4OJ/AT8DfBT4NnDlpG0+BzzO4GexrgP2znbfJ9H7XwcWtse/PJd6H9ruSeA/ATfOdt8n8ef+MQZXOfl4e37xbPd9kv3/GnBne7wYmAA+2kHvvwh8CvjuCV7vcl89if673F/H6X3o39Zp31/P5iOo/38Jpar6M+DYJZSGrQMerIFvAR9LculMNzrCtL1X1R9U1ZH29FsMfn6sB+P8uQN8Afhd4NBMNjeNcXr/B8BXq+o1gKqaa/0X8NNJAvwUg4A6OrNt/riq+mbr5UR63VeB6fvveH8d588eztD+ejYH1KhLKC05hW1mw8n2tZHB/y57MG3vSZYAfw/4jRnsaxzj/Ln/ZWBhkm8keTbJzTPW3fTG6f/fAj/P4Ifhnwe+WFU/mpn2PpRe99VT0dP+Oq0zub92/3NQZ9C0l1Aac5vZMHZfSX6JwT/4v3FGOxrfOL1/CfjVqnp/8B/5bozT+wLgGmAVcB7wVJJvVdX/PNPNjWGc/tcAzwGfBf4SsDvJf6uqPz7DvX1Yve6rJ6XD/XUcX+IM7a9nc0CNcwmlXi+zNFZfSf4K8BXgl6vqhzPU23TG6X0F8HD7x34R8LkkR6vqP8xIhyc27r+ZH1TVnwJ/muSbwCeAHgJqnP4/D2yrwRcLB5K8Avwc8PTMtHjKet1Xx9bp/jqOM7a/ns2n+Ma5hNIu4Oa2Qug64O2qenOmGx1h2t6TfBz4KvArnfzv/Zhpe6+qy6tqWVUtAx4F/kkH4QTj/Zt5DPibSRYk+fMMrrz/0gz3eSLj9P8ag6M/klwC/Czw/Rnt8tT0uq+OpeP9dVpncn89a4+g6gSXUEryj9vrv8FgRcrngAPA/2Xwv8tZN2bv/xK4ELin/c/maHVwxeQxe+/SOL1X1UtJvg58B/gRg98APeXy3Jky5p/9HcADSZ5ncNrsV6tq1n8VRJLfAT4DXJTkILAF+Aj0va8eM0b/Xe6vMFbvZ+692xJBSZK6cjaf4pMkdcyAkiR1yYCSJHXJgJIkdcmAkiR1yYCSJHXJgJIkden/AbA3lEklmNiXAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LET'S VISUALIZE OUR precinct usage in a histogram  \n",
    "n_bins=50\n",
    "avgPrecinctUse = 0.\n",
    "stateVTDPop = np.sum(vtdPop)\n",
    "for p in range(nPrecincts):\n",
    "    avgPrecinctUse += precinctUse[p] * vtdPop[p]/stateVTDPop\n",
    "sumVarPrecinctUse = 0.\n",
    "for p in range(nPrecincts):\n",
    "    sumVarPrecinctUse += (precinctUse[p]-avgPrecinctUse)**2 *vtdPop[p]/stateVTDPop\n",
    "sdPrecinctUse = sumVarPrecinctUse ** 0.5\n",
    "\n",
    "print(sdPrecinctUse,\"= std dev of PRECINCT usage.  Here is its weighted histogram\")\n",
    "print(\"this is a histogram of PRECINCT usage by precinct\")        \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(precinctUse, bins=n_bins, weights=vtdPop)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "f6f03dcb-c722-4789-b47f-fb7aa3be97bc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here's a look at numerical stability - number of loops, avg =  6.7803\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "avgTLC = 0.\n",
    "usedTracts = 0.\n",
    "for t in range (nTracts):\n",
    "    if(tractLoopCounter[t] > 0):\n",
    "        avgTLC += tractLoopCounter[t]\n",
    "        usedTracts +=1.\n",
    "avgTLC = round(avgTLC / usedTracts, 4)\n",
    "print(\"here's a look at numerical stability - number of loops, avg = \",avgTLC)\n",
    "n_bins=20     \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(tractLoopCounter, bins=n_bins)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "974631b2-10ef-4847-af2e-a1e26b6fa768",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a histogram of home-district pct GOP by tract\n",
      "statewide vote is off by 0.00239 0.54315 HD avg vs true 0.54077\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAASk0lEQVR4nO3df6zdd13H8efLzgWYYNFdZGk3O7QqhTCotVQwxN9pO7QhLrHzx+IkaaYbwUTU6h9EY0zmPwaWzDV1Tl1EFsIP07jKNCIShc7e4SgrY+baTHZZzYroEGachbd/nG/heHZu7/e2t/d8zrnPR3LSe77fz/ee1/3m3r76+d7v+TRVhSRJrfm6SQeQJGkcC0qS1CQLSpLUJAtKktQkC0qS1KTLJh1gnCuvvLK2bNky6RiSpDXw0EMPfa6q5ka3N1lQW7ZsYX5+ftIxJElrIMm/jtvuJT5JUpMsKElSkywoSVKTLChJUpMsKElSkywoSVKTLChJUpMsKElSkywoSVKTLChJUpOaXOpIkiZhy8H7l9z3+O3Xr2ESgTMoSVKjLChJUpMsKElSkywoSVKTLChJUpMsKElSkywoSVKTLChJUpMsKElSkywoSVKTLChJUpMsKElSkywoSVKTLChJUpMsKElSkywoSVKTehVUkt1JHkuykOTgmP1Jcke3/0SS7UP7NiZ5b5JPJ3k0yfeu5hcgSZpNyxZUkg3AncAeYBtwY5JtI8P2AFu7xwHgrqF97wQ+WFXfBVwHPLoKuSVJM67PDGonsFBVp6rqWeA+YN/ImH3AvTVwDNiY5KokLwLeAPwhQFU9W1X/uXrxJUmzqk9BbQKeGHq+2G3rM+ZlwBngj5L8U5K7k1wx7kWSHEgyn2T+zJkzvb8ASdJs6lNQGbOteo65DNgO3FVVrwG+BDznd1gAVXW4qnZU1Y65ubkesSRJs6xPQS0CVw893ww82XPMIrBYVQ9229/LoLAkSTqvPgV1HNia5NoklwP7gSMjY44AN3V38+0Cnq6q01X1b8ATSb6zG/dDwKdWK7wkaXZdttyAqjqb5DbgAWADcE9VnUxyS7f/EHAU2AssAM8ANw99ircA7+rK7dTIPkmSxlq2oACq6iiDEhredmjo4wJuXeLYh4EdFx5RkrQeuZKEJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSb0KKsnuJI8lWUhycMz+JLmj238iyfahfY8n+WSSh5PMr2Z4SdLsumy5AUk2AHcCPwIsAseTHKmqTw0N2wNs7R6vBe7q/jznB6rqc6uWWpLW2JaD9y+57/Hbr1/DJOtHnxnUTmChqk5V1bPAfcC+kTH7gHtr4BiwMclVq5xVkrSO9CmoTcATQ88Xu219xxTwV0keSnJgqRdJciDJfJL5M2fO9IglSZplfQoqY7bVCsa8vqq2M7gMeGuSN4x7kao6XFU7qmrH3Nxcj1iSpFnWp6AWgauHnm8Gnuw7pqrO/fkU8AEGlwwlSTqvPgV1HNia5NoklwP7gSMjY44AN3V38+0Cnq6q00muSPJCgCRXAD8KPLKK+SVJM2rZu/iq6myS24AHgA3APVV1Mskt3f5DwFFgL7AAPAPc3B3+LcAHkpx7rT+rqg+u+lchSZo5yxYUQFUdZVBCw9sODX1cwK1jjjsFXHeRGSVJ65ArSUiSmmRBSZKaZEFJkppkQUmSmmRBSZKa1OsuPknShXGR2QtnQUmaSv7FP/u8xCdJapIzKEkzx9nVbHAGJUlqkgUlSWqSl/gkrYmlLrt5yU1LsaAkNet8v0vS7PMSnySpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSb4PStK64nurpoczKElSk5xBSVo1zk60miwoSZoyF/IPgWlc89BLfJKkJllQkqQmWVCSpCb1+h1Ukt3AO4ENwN1VdfvI/nT79wLPAD9XVR8f2r8BmAc+W1VvXKXskjSzvOGkxwyqK5c7gT3ANuDGJNtGhu0BtnaPA8BdI/vfCjx60WklSetGn0t8O4GFqjpVVc8C9wH7RsbsA+6tgWPAxiRXASTZDFwP3L2KuSVJM67PJb5NwBNDzxeB1/YYswk4DbwD+FXghRecUpJmkJfxzq/PDCpjtlWfMUneCDxVVQ8t+yLJgSTzSebPnDnTI5YkaZb1mUEtAlcPPd8MPNlzzA3AjyfZCzwPeFGSP62qnxl9kao6DBwG2LFjx2gBSlKznAldGn1mUMeBrUmuTXI5sB84MjLmCHBTBnYBT1fV6ar69araXFVbuuM+NK6cJEkatewMqqrOJrkNeIDBbeb3VNXJJLd0+w8BRxncYr7A4Dbzmy9dZEnSetDrfVBVdZRBCQ1vOzT0cQG3LvM5Pgx8eMUJJc00L49pKa4kIUlqkgUlSWqSBSVJapIFJUlqkgUlSWqSBSVJapIFJUlqUq/3QUnSOb5vSWvFGZQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUmXTTqApPZsOXj/pCNI/WZQSXYneSzJQpKDY/YnyR3d/hNJtnfbn5fkH5N8IsnJJL+12l+AJGk2LVtQSTYAdwJ7gG3AjUm2jQzbA2ztHgeAu7rt/wP8YFVdB7wa2J1k1+pElyTNsj4zqJ3AQlWdqqpngfuAfSNj9gH31sAxYGOSq7rnX+zGfH33qNUKL0maXX0KahPwxNDzxW5brzFJNiR5GHgK+OuqenDciyQ5kGQ+yfyZM2d6xpckzao+BZUx20ZnQUuOqaovV9Wrgc3AziSvHPciVXW4qnZU1Y65ubkesSRJs6xPQS0CVw893ww8udIxVfWfwIeB3SsNKUlaf/oU1HFga5Jrk1wO7AeOjIw5AtzU3c23C3i6qk4nmUuyESDJ84EfBj69evElSbNq2fdBVdXZJLcBDwAbgHuq6mSSW7r9h4CjwF5gAXgGuLk7/CrgT7o7Ab8OeE9V/cXqfxmSpFnT6426VXWUQQkNbzs09HEBt4457gTwmovMKElah1zqSJLUJAtKktQkC0qS1CQXi5Wm3PkWdn389uvXMIm0uiwoaZ1yxXK1zkt8kqQmWVCSpCZZUJKkJllQkqQmeZOENMO8EULTzBmUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUkWlCSpSRaUJKlJFpQkqUm9CirJ7iSPJVlIcnDM/iS5o9t/Isn2bvvVSf42yaNJTiZ562p/AZKk2bRsQSXZANwJ7AG2ATcm2TYybA+wtXscAO7qtp8FfrmqXg7sAm4dc6wkSc/RZwa1E1ioqlNV9SxwH7BvZMw+4N4aOAZsTHJVVZ2uqo8DVNV/AY8Cm1YxvyRpRl3WY8wm4Imh54vAa3uM2QScPrchyRbgNcCD414kyQEGsy+uueaaHrGk9WPLwfsnHUFac31mUBmzrVYyJsk3AO8DfqmqvjDuRarqcFXtqKodc3NzPWJJkmZZn4JaBK4eer4ZeLLvmCRfz6Cc3lVV77/wqJKk9aRPQR0Htia5NsnlwH7gyMiYI8BN3d18u4Cnq+p0kgB/CDxaVb+3qsklSTNt2d9BVdXZJLcBDwAbgHuq6mSSW7r9h4CjwF5gAXgGuLk7/PXAzwKfTPJwt+03quroqn4VkqSZ0+cmCbpCOTqy7dDQxwXcOua4v2f876ckSTovV5KQJDXJgpIkNcmCkiQ1yYKSJDXJgpIkNcmCkiQ1qddt5pL6O9+6eY/ffv0aJpGmmzMoSVKTnEFJjXDFcl1K0zizdwYlSWqSBSVJapKX+KQ15GU8qT8LSlrCNF6zl2aJBSVdAGdC0qVnQWldWKpQnAlJ7fImCUlSkywoSVKTLChJUpMsKElSkywoSVKTLChJUpMsKElSkywoSVKTfKOuJK1zrS7rZUFpXXPJIqldXuKTJDXJgpIkNalXQSXZneSxJAtJDo7ZnyR3dPtPJNk+tO+eJE8leWQ1g0uSZtuyBZVkA3AnsAfYBtyYZNvIsD3A1u5xALhraN8fA7tXI6wkaf3oc5PETmChqk4BJLkP2Ad8amjMPuDeqirgWJKNSa6qqtNV9ZEkW1Y7uDTKGx6k2dLnEt8m4Imh54vdtpWOkSSptz4FlTHb6gLGnP9FkgNJ5pPMnzlzZiWHSpJmUJ+CWgSuHnq+GXjyAsacV1UdrqodVbVjbm5uJYdKkmZQn4I6DmxNcm2Sy4H9wJGRMUeAm7q7+XYBT1fV6VXOKklaR5YtqKo6C9wGPAA8Crynqk4muSXJLd2wo8ApYAH4A+AXzx2f5N3Ax4DvTLKY5M2r/DVIkmZQr6WOquoogxIa3nZo6OMCbl3i2BsvJqAkaX1yJQlJUpMsKElSkywoSVKTLChJUpMsKElSkywoSVKTLChJUpMsKElSkywoSVKTLChJUpN6LXUktcL/lFBaP5xBSZKaZEFJkppkQUmSmmRBSZKa5E0Sao43QkgCZ1CSpEZZUJKkJllQkqQmWVCSpCZZUJKkJllQkqQmWVCSpCZZUJKkJllQkqQmWVCSpCa51JEkaUnnW3rs8duvv6Sv7QxKktSkXgWVZHeSx5IsJDk4Zn+S3NHtP5Fke99jJUkaZ9mCSrIBuBPYA2wDbkyybWTYHmBr9zgA3LWCYyVJeo4+v4PaCSxU1SmAJPcB+4BPDY3ZB9xbVQUcS7IxyVXAlh7Hah3yv9SQtJw+BbUJeGLo+SLw2h5jNvU8FoAkBxjMvgC+mOSxHtnO50rgcxf5OSZhGnNPY2aYztzTmBnMvZbWLHN+d9U+1beO29inoDJmW/Uc0+fYwcaqw8DhHnl6STJfVTtW6/OtlWnMPY2ZYTpzT2NmMPdamsbMS+lTUIvA1UPPNwNP9hxzeY9jJUl6jj538R0Htia5NsnlwH7gyMiYI8BN3d18u4Cnq+p0z2MlSXqOZWdQVXU2yW3AA8AG4J6qOpnklm7/IeAosBdYAJ4Bbj7fsZfkK3muVbtcuMamMfc0ZobpzD2NmcHca2kaM4+VwY13kiS1xZUkJElNsqAkSU2a+oK6mGWYJqVH5u9K8rEk/5PkbZPIOE6P3D/dneMTST6a5LpJ5BzJtFzmfV3eh5PMJ/m+SeQc1XeJsCTfk+TLSW5Yy3xL6XG+vz/J0935fjjJ2yeRcyTTsue6y/1wkpNJ/m6tM47T41z/ytB5fqT7PvmmSWS9YFU1tQ8GN178C/AyBre0fwLYNjJmL/CXDN6TtQt4cAoyvwT4HuB3gLdN+jyvIPfrgBd3H++ZknP9DXztd7GvAj49Ded6aNyHGNykdMM05Aa+H/iLSWddYeaNDFa/uaZ7/pJpyD0y/seAD00690of0z6D+uoyTFX1LHBuKaVhX12GqaqOAeeWYZqUZTNX1VNVdRz430kEXEKf3B+tqv/onh5j8L63SeqT+YvV/QQDV7DEG8nXWJ/va4C3AO8DnlrLcOfRN3dL+mT+KeD9VfUZGPx8rnHGcVZ6rm8E3r0myVbRtBfUUkssrXTMWmotT18rzf1mBjPXSeqVOcmbknwauB/4+TXKdj7L5k6yCXgTcGgNcy2n7/fI9yb5RJK/TPKKtYm2pD6ZvwN4cZIPJ3koyU1rlm5pvX8ek7wA2M3gHzNTZdr/w8KLWYZpUlrL01fv3El+gEFBTfr3Ob0yV9UHgA8keQPw28APX+pgy+iT+x3Ar1XVl5NxwyeiT+6PA99aVV9Mshf4cwb/C8Kk9Ml8GfDdwA8Bzwc+luRYVf3zpQ53Hiv5e+THgH+oqs9fwjyXxLQX1MUswzQpreXpq1fuJK8C7gb2VNW/r1G2pazoXFfVR5J8W5Irq2qSC4T2yb0DuK8rpyuBvUnOVtWfr0nC8ZbNXVVfGPr4aJLfn/D57vt3yOeq6kvAl5J8BLgOmGRBreR7ez9TeHkPmPqbJC4DTgHX8rVfFL5iZMz1/P+bJP6x9cxDY3+Tdm6S6HOur2GwmsjrJp13BZm/na/dJLEd+Oy55y3nHhn/x7Rxk0Sf8/3SofO9E/jMJM93z8wvB/6mG/sC4BHgla2f627cNwKfB66Y9PfHhTymegZVF7EM06T0yZzkpcA88CLgK0l+icEdOl9Y6vO2kBt4O/DNwO93/7I/WxNcVbln5p9gsI7k/wL/DfxkdT/Zk9Izd3N65r4B+IUkZxmc7/2TPN99MlfVo0k+CJwAvgLcXVWPTCpzl6vv98ibgL+qwexv6rjUkSSpSdN+F58kaUZZUJKkJllQkqQmWVCSpCZZUJKkJllQkqQmWVCSpCb9H8S94TZ5F+zwAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LET'S VISUALIZE OUR HOME DISTRICT red-blue lean in a histogram  and check the statewide vote vs. HD average\n",
    "n_bins=50\n",
    "print(\"this is a histogram of home-district pct GOP by tract\") \n",
    "print(\"statewide vote is off by\",round((stateGOP2-stateGOP),5),round(stateGOP2,5),\"HD avg vs true\",round(stateGOP,5))\n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(HDvGOP, bins=n_bins,weights=HDweight)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "720d9eb5-11e8-45f7-b402-a0048e9ddb99",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "calculated statewide Hispanic pct was 0.03368, should have been 0.03649\n",
      "this is a histogram of home-district VAP pct Hispanic by tract\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAPBklEQVR4nO3dcYzfd13H8efLliYSiBu2g9IWW7EqjYE4z7qIGmRM20ooJvyxqWyZJs2iM5hooECif/jPjImShcnS4OIWiQuRKdUU5xgqJljcFbeOWsfOKqy2sgPNMOyPpfD2j/tijvPX3a/8frt7393zkVx63+/38/v93v2ku+f9fvfLLVWFJEndfNtqDyBJ0igGSpLUkoGSJLVkoCRJLRkoSVJLm1d7gG/F1q1ba/fu3as9hiRpCk6dOvWlqtq29PyaDNTu3buZnZ1d7TEkSVOQ5POjzvsSnySpJQMlSWrJQEmSWjJQkqSWDJQkqSUDJUlqyUBJkloyUJKklgyUJKklAyVJaslASZJaMlCSpJYMlCSpJQMlSWrJQEmSWjJQkqSWDJQkqSUDJUlqyUBJkloyUJKklgyUJKklAyVJaslASZJaMlCSpJYMlCSpJQMlSWrJQEmSWjJQkqSWDJQkqaWpBCrJgSRPJJlLcnTE9SS5c7h+Osm1S65vSvJPSf5yGvNIkta+iQOVZBNwF3AQ2AfclGTfkmUHgb3DxxHgA0uuvwM4O+kskqT1YxrPoPYDc1V1rqqeA+4HDi9Zcxi4rxacBK5Ksh0gyU7gZ4APTmEWSdI6MY1A7QCeWnR8fjg37pr3Ae8Evv58D5LkSJLZJLPz8/MTDSxJ6m8agcqIczXOmiRvBp6uqlPLPUhVHauqmaqa2bZt27cypyRpDZlGoM4DuxYd7wQujLnm9cBbkvw7Cy8NvjHJH09hJknSGjeNQD0C7E2yJ8kW4Ebg+JI1x4Gbh3fzXQc8U1UXq+rdVbWzqnYPt/tEVf3CFGaSJK1xmye9g6q6lOR24EFgE3BPVZ1Jcttw/W7gBHAImAOeBW6d9HElSetbqpb+uKi/mZmZmp2dXe0xJElTkORUVc0sPe9vkpAktWSgJEktGShJUksGSpLUkoGSJLVkoCRJLRkoSVJLBkqS1JKBkiS1ZKAkSS0ZKElSSwZKktSSgZIktWSgJEktGShJUksGSpLUkoGSJLVkoCRJLRkoSVJLBkqS1JKBkiS1ZKAkSS0ZKElSSwZKktSSgZIktWSgJEktGShJUksGSpLUkoGSJLVkoCRJLRkoSVJLBkqS1JKBkiS1ZKAkSS0ZKElSSwZKktSSgZIktTSVQCU5kOSJJHNJjo64niR3DtdPJ7l2OL8ryd8kOZvkTJJ3TGMeSdLaN3GgkmwC7gIOAvuAm5LsW7LsILB3+DgCfGA4fwn49ap6DXAd8CsjbitJ2oCm8QxqPzBXVeeq6jngfuDwkjWHgftqwUngqiTbq+piVX0GoKr+BzgL7JjCTJKkNW4agdoBPLXo+Dz/PzLLrkmyG/hB4NOjHiTJkSSzSWbn5+cnnVmS1Nw0ApUR5+pK1iR5CfAR4Neq6iujHqSqjlXVTFXNbNu27VseVpK0NkwjUOeBXYuOdwIXxl2T5EUsxOlDVfXAFOaRJK0D0wjUI8DeJHuSbAFuBI4vWXMcuHl4N991wDNVdTFJgD8EzlbV701hFknSOrF50juoqktJbgceBDYB91TVmSS3DdfvBk4Ah4A54Fng1uHmrwfeDjye5NHh3Huq6sSkc0mS1rZULf1xUX8zMzM1Ozu72mNIkqYgyamqmll63t8kIUlqyUBJkloyUJKklgyUJKklAyVJaslASZJaMlCSpJYMlCSpJQMlSWrJQEmSWjJQkqSWDJQkqSUDJUlqyUBJkloyUJKklgyUJKklAyVJaslASZJaMlCSpJYMlCSpJQMlSWrJQEmSWjJQkqSWDJQkqSUDJUlqyUBJkloyUJKklgyUJKklAyVJaslASZJaMlCSpJYMlCSpJQMlSWrJQEmSWjJQkqSWDJQkqaWpBCrJgSRPJJlLcnTE9SS5c7h+Osm1495WkrQxTRyoJJuAu4CDwD7gpiT7liw7COwdPo4AH7iC20qSNqBpPIPaD8xV1bmqeg64Hzi8ZM1h4L5acBK4Ksn2MW8rSdqAphGoHcBTi47PD+fGWTPObQFIciTJbJLZ+fn5iYeWJPU2jUBlxLkac804t104WXWsqmaqambbtm1XOKIkaa3ZPIX7OA/sWnS8E7gw5potY9xWkrQBTeMZ1CPA3iR7kmwBbgSOL1lzHLh5eDffdcAzVXVxzNtKkjagiZ9BVdWlJLcDDwKbgHuq6kyS24brdwMngEPAHPAscOvz3XbSmSRJa1+qRv7Ip7WZmZmanZ1d7TEkSVOQ5FRVzSw972+SkCS1ZKAkSS0ZKElSSwZKktSSgZIktWSgJEktGShJUksGSpLUkoGSJLVkoCRJLRkoSVJLBkqS1JKBkiS1ZKAkSS0ZKElSSwZKktSSgZIktWSgJEktGShJUksGSpLUkoGSJLVkoCRJLRkoSVJLBkqS1JKBkiS1ZKAkSS0ZKElSSwZKktSSgZIktWSgJEktGShJUksGSpLUkoGSJLVkoCRJLRkoSVJLBkqS1NJEgUrysiQPJXly+PPqy6w7kOSJJHNJji46/7tJ/iXJ6SR/luSqSeaRJK0fkz6DOgo8XFV7gYeH42+SZBNwF3AQ2AfclGTfcPkh4Aeq6rXA54B3TziPJGmdmDRQh4F7h8/vBd46Ys1+YK6qzlXVc8D9w+2oqr+uqkvDupPAzgnnkSStE5MG6uVVdRFg+POaEWt2AE8tOj4/nFvqF4GPXe6BkhxJMptkdn5+foKRJUlrweblFiT5OPCKEZfeO+ZjZMS5WvIY7wUuAR+63J1U1THgGMDMzExdbp0kaX1YNlBV9abLXUvyxSTbq+piku3A0yOWnQd2LTreCVxYdB+3AG8Grq8qwyNJAiZ/ie84cMvw+S3AR0eseQTYm2RPki3AjcPtSHIAeBfwlqp6dsJZJEnryKSBugO4IcmTwA3DMUlemeQEwPAmiNuBB4GzwIer6sxw+/cDLwUeSvJokrsnnEeStE4s+xLf86mqLwPXjzh/ATi06PgEcGLEuu+Z5PElSeuXv0lCktSSgZIktWSgJEktGShJUksGSpLUkoGSJLVkoCRJLRkoSVJLBkqS1JKBkiS1ZKAkSS0ZKElSSwZKktSSgZIktWSgJEktGShJUksGSpLUkoGSJLVkoCRJLRkoSVJLBkqS1JKBkiS1ZKAkSS0ZKElSSwZKktSSgZIktWSgJEktGShJUksGSpLUkoGSJLVkoCRJLRkoSVJLBkqS1JKBkiS1ZKAkSS0ZKElSSwZKktTSRIFK8rIkDyV5cvjz6susO5DkiSRzSY6OuP4bSSrJ1knmkSStH5M+gzoKPFxVe4GHh+NvkmQTcBdwENgH3JRk36Lru4AbgC9MOIskaR2ZNFCHgXuHz+8F3jpizX5grqrOVdVzwP3D7b7h94F3AjXhLJKkdWTSQL28qi4CDH9eM2LNDuCpRcfnh3MkeQvwH1X12HIPlORIktkks/Pz8xOOLUnqbvNyC5J8HHjFiEvvHfMxMuJcJXnxcB8/Nc6dVNUx4BjAzMyMz7YkaZ1bNlBV9abLXUvyxSTbq+piku3A0yOWnQd2LTreCVwAXg3sAR5L8o3zn0myv6r+8wr+DpKkdWjSl/iOA7cMn98CfHTEmkeAvUn2JNkC3Agcr6rHq+qaqtpdVbtZCNm1xkmSBJMH6g7ghiRPsvBOvDsAkrwyyQmAqroE3A48CJwFPlxVZyZ8XEnSOrfsS3zPp6q+DFw/4vwF4NCi4xPAiWXua/cks0iS1hd/k4QkqSUDJUlqyUBJkloyUJKklgyUJKklAyVJaslASZJaMlCSpJYMlCSpJQMlSWrJQEmSWjJQkqSWDJQkqSUDJUlqyUBJkloyUJKklgyUJKklAyVJaslASZJaMlCSpJYMlCSpJQMlSWrJQEmSWjJQkqSWDJQkqSUDJUlqyUBJkloyUJKkllJVqz3DFUsyD3x+ted4gWwFvrTaQ6wR7tX43KvxuVdXZhr79V1VtW3pyTUZqPUsyWxVzaz2HGuBezU+92p87tWVeSH3y5f4JEktGShJUksGqp9jqz3AGuJejc+9Gp97dWVesP3yZ1CSpJZ8BiVJaslASZJaMlCrIMmBJE8kmUtydMT1n09yevj4VJLXrcacHSy3V4vW/XCSryV520rO1804+5XkDUkeTXImyd+t9IxdjPHf4Xck+Yskjw17detqzNlBknuSPJ3ks5e5niR3Dnt5Osm1U3ngqvJjBT+ATcC/At8NbAEeA/YtWfOjwNXD5weBT6/23F33atG6TwAngLet9tyd9wu4Cvhn4FXD8TWrPXfjvXoP8DvD59uA/wK2rPbsq7RfPwFcC3z2MtcPAR8DAlw3ra9ZPoNaefuBuao6V1XPAfcDhxcvqKpPVdV/D4cngZ0rPGMXy+7V4FeBjwBPr+RwDY2zXz8HPFBVXwCoqo26Z+PsVQEvTRLgJSwE6tLKjtlDVX2Shb//5RwG7qsFJ4Grkmyf9HEN1MrbATy16Pj8cO5yfomF70w2omX3KskO4GeBu1dwrq7G+bf1vcDVSf42yakkN6/YdL2Ms1fvB14DXAAeB95RVV9fmfHWnCv9ujaWzZPega5YRpwb+V7/JD/JQqB+7AWdqK9x9up9wLuq6msL3+huaOPs12bgh4DrgW8H/iHJyar63As9XDPj7NVPA48CbwReDTyU5O+r6isv8Gxr0dhf166EgVp554Fdi453svAd2jdJ8lrgg8DBqvryCs3WzTh7NQPcP8RpK3AoyaWq+vMVmbCXcfbrPPClqvoq8NUknwReB2y0QI2zV7cCd9TCD1nmkvwb8P3AP67MiGvKWF/XrpQv8a28R4C9SfYk2QLcCBxfvCDJq4AHgLdvwO9sF1t2r6pqT1XtrqrdwJ8Cv7xB4wRj7BfwUeDHk2xO8mLgR4CzKzxnB+Ps1RdYeKZJkpcD3wecW9Ep147jwM3Du/muA56pqouT3qnPoFZYVV1KcjvwIAvvJLqnqs4kuW24fjfwm8B3An8wPDO4VBvwtyuPuVcajLNfVXU2yV8Bp4GvAx+sqpFvHV7Pxvy39dvAHyV5nIWXsN5VVRvyf8OR5E+ANwBbk5wHfgt4EfzfXp1g4Z18c8CzLDz7nPxxh7cISpLUii/xSZJaMlCSpJYMlCSpJQMlSWrJQEmSWjJQkqSWDJQkqaX/BacyS9eVboe7AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LET'S VISUALIZE OUR home district pct Hispanic in a histogram\n",
    "print(\"calculated statewide Hispanic pct was {0}, should have been {1}\"\n",
    "      .format(round(stateHisp2,5), round(np.sum(tractHisp)/np.sum(tractVAP),5) ) )\n",
    "n_bins=50\n",
    "print(\"this is a histogram of home-district VAP pct Hispanic by tract\")        \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(HDvHisp, bins=[0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0],\n",
    "        weights=HDweight)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "1ab7704f-a226-45a9-98a6-d0684522c1eb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a bar plot of seats by VAP pct Hispanic for CO\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ALTERNATE VIEW OF HISPANIC VOTE: HOW MANY DISTRICTS PER 10pct BIN of PCT HISPANIC VOTE?\n",
    "n_bins = 20\n",
    "HispSeats = [0.]*n_bins\n",
    "binMid = [0.]*n_bins\n",
    "for b in range(n_bins):\n",
    "    binMid[b]= float(b)/n_bins + 0.5/n_bins  #centering each bin\n",
    "for t in range(nTracts) :\n",
    "    b = int(HDvHisp[t]*n_bins)\n",
    "    HispSeats[b] += HDweight[t]*nDistricts  #multiply by nDistricts to get number of expected seats\n",
    "\n",
    "print(\"this is a bar plot of seats by VAP pct Hispanic for\",STATE)        \n",
    "fig, ax = plt.subplots()\n",
    "plt.bar(binMid,HispSeats,width=0.09 )\n",
    "#plt.scatter(binMid,HispSeats )\n",
    "ax.set(xlabel=\"pct Hispanic\", ylabel=\"number of seats\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "3ef49161-368a-40a2-83ff-92187edb3462",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "using a threshold of 0.35 the number of Hisp districts should be 0.01\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Where in the state do we see Hispanic-heavy home districts?\n",
    "minHisp1 = 0.35\n",
    "minHisp2 = 0.40\n",
    "sumHispDistricts = 0.\n",
    "for t in range(nTracts):\n",
    "    if (HDvHisp[t] > minHisp1 and tractPop[t] > minTractPop):\n",
    "        sumHispDistricts += tractPop[t]/avgDistrictPop\n",
    "        if (HDvHisp[t] < minHisp2):\n",
    "            plt.scatter(tractCPx[t],tractCPy[t],marker='.',color='orange' )\n",
    "        else :            \n",
    "            plt.text(tractCPx[t],tractCPy[t],'o',color='blue', fontsize= 12)\n",
    "print(\"using a threshold of\",minHisp1,\"the number of Hisp districts should be\",round(sumHispDistricts,3))\n",
    "x,y = origMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "a92133ad-dc95-4aa1-af02-c1d71296cee6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a bar plot of seats by VAP pct Black for OH\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEGCAYAAABvtY4XAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAARp0lEQVR4nO3debCkVX3G8e8TRsUFEWW03PCCGjcUxHEHg6JGIUYTTVyiKGowQQGXRDFWxDIxhVmMilsmIHEhagVcCBgVo0QJmzPsMJoygIpLOS4sgUQd+OWPfqe8jHPnvjPdb9/pc7+fqq7pft/uPr/DvfXcw+nznk5VIUlqz68tdQGSpGEY8JLUKANekhplwEtSowx4SWrUiqUuYL5dd9215ubmlroMSZoZa9eu/VFVrdzcue0q4Ofm5lizZs1SlyFJMyPJtxY65xSNJDXKgJekRhnwktQoA16SGmXAS1KjDHhJapQBL0mNMuAlqVEGvCQ1aru6knUcc0edNrW2rjrmoKm1JUnbyhG8JDXKgJekRhnwktQoA16SGmXAS1KjDHhJapQBL0mNMuAlqVEGvCQ1yoCXpEYZ8JLUKANekhplwEtSowx4SWqUAS9JjTLgJalRBrwkNcqAl6RGGfCS1CgDXpIaZcBLUqMMeElqlAEvSY0y4CWpUYMGfJLXJLksyaVJPpZkxyHbkyT90mABn+SewBHAqqraE9gBeN5Q7UmSbmnoKZoVwG2TrABuB3xv4PYkSZ3BAr6qvgv8LfBt4PvAtVX1hU2fl+TQJGuSrFm/fv1Q5UjSsjPkFM0uwDOB3YF7ALdP8sJNn1dVq6tqVVWtWrly5VDlSNKyM+QUzZOBK6tqfVX9Avgk8LgB25MkzTNkwH8beEyS2yUJcACwbsD2JEnzDDkHfy5wEnA+cEnX1uqh2pMk3dKKId+8qo4Gjh6yDUnS5nklqyQ1yoCXpEYZ8JLUKANekhplwEtSowx4SWqUAS9JjTLgJalRBrwkNcqAl6RGGfCS1CgDXpIaZcBLUqMMeElqlAEvSY0y4CWpUQa8JDXKgJekRhnwktQoA16SGmXAS1KjDHhJapQBL0mNMuAlqVEGvCQ1yoCXpEYtGvBJjkxyx4wcn+T8JE+dRnGSpG3XZwT/0qq6DngqsBI4BDhm0KokSWPrE/Dp/j0QOKGqLpp3TJK0neoT8GuTfIFRwH8+yU7AzcOWJUka14oez3kZsDdwRVXdmOQujKZpJEnbsT4j+NOr6vyqugagqn4M/P2gVUmSxrbgCD7JjsDtgF2T7MIv593vCNxjCrVJksawpSmaVwCvZhTma/llwF8HvHfYsiRJ41ow4KvqXcC7khxeVcdOsSZJ0gQs+iFrVR2bZE/gwcCO845/eLHXJrkTcBywJ1CM1tSfvc3VSpJ6WzTgkxwN7M8o4D8LPB04E1g04IF3AZ+rquckuTWjOX1J0hT0WUXzHOAA4AdVdQiwF3CbxV6U5I7AE4DjAarq5xtX4kiShtcn4P+3qm4GNnSh/UNgjx6v2wNYD5yQ5IIkxyW5/Ri1SpK2Qp+AX9PNpf8jo9U05wPn9XjdCmAf4P1V9XDgBuCoTZ+U5NAka5KsWb9+fe/CJUlbtmjAV9VhVXVNVX0AeArw4m6qZjFXA1dX1bnd45MYBf6m77+6qlZV1aqVK1duTe2SpC3os11wkrwwyZur6irgmiSPWux1VfUD4DtJHtAdOgC4fKxqJUm99dmL5n2MNhd7EvBW4HrgZOCRPV57OHBit4LmCtzDRpKmpk/AP7qq9klyAUBV/bQL7EVV1YXAqjHqkyRtoz4fsv4iyQ6MLlQiyUrcLliStnt9Av7dwKeAuyZ5G6OLnP5q0KokSWPrs1XBiUnWMvqQNMCzqmrd4JVJksbSZxXNfYErq+q9wKXAU7p18ZKk7VifKZqTgZuS3I/RxmG7A/88aFWSpLH1Cfibq2oD8LvAu6rqNcDdhy1LkjSuvqtong8cDJzaHbvVcCVJkiahT8AfAjwWeFtVXZlkd+Cjw5YlSRpXn1U0lwNHzHt8JXDMkEVJksbXZwQvSZpBBrwkNWrBgE/yke7fI6dXjiRpUrY0gn9EkvsAL02yS5I7z79Nq0BJ0rbZ0oesHwA+x+ir99Yy2qZgo6Lf1/ZJkpbIgiP4qnp3VT0I+GBV7VFVu8+7Ge6StJ3rs0zyj5PsBezXHfpKVV08bFmSpHH12WzsCOBE4K7d7cQkhw9dmCRpPH2+0enljL7V6QaAJG8HzgaOHbIwSdJ4+qyDD3DTvMc3ccsPXCVJ26E+I/gTgHOTfKp7/Czg+MEqkiRNRJ8PWd+R5AxgX0Yj90Oq6oKhC5MkjafPCJ6qOh84f+BaJEkT5F40ktQoA16SGrXFgE+yQ5IvTqsYSdLkbDHgq+om4MYkO0+pHknShPT5kPX/gEuSnA7csPFgVR2x8EskSUutT8Cf1t0kSTOkzzr4DyW5LbBbVX1jCjVJkiagz2ZjzwAuZLQ3PEn2TnLKwHVJksbUZ5nkW4BHAdcAVNWFwO6DVSRJmog+Ab+hqq7d5FgNUYwkaXL6fMh6aZIXADskuT9wBHDWsGVJksbVZwR/OPAQ4GfAx4DrgFcPWJMkaQL6rKK5EXhT90UfVVXXD1+WJGlcfVbRPDLJJcDFjC54uijJI4YvTZI0jj5TNMcDh1XVXFXNAa9k9CUgvXT72VyQ5NRtrFGStA36BPz1VfXVjQ+q6kxga6ZpjgTWbW1hkqTxLBjwSfZJsg9wXpJ/SLJ/kt9I8j7gjD5vnuRewEHAcROpVpLU25Y+ZP27TR4fPe9+33Xw7wReD+y00BOSHAocCrDbbrv1fFtJ0mIWDPiqeuI4b5zkt4AfVtXaJPtvoZ3VwGqAVatWeQGVJE3Iosskk9wJOBiYm//8HtsFPx747SQHAjsCd0zy0ap64TZXK0nqrc+VrJ8FzgEuAW7u+8ZV9UbgjQDdCP5PDHdJmp4+Ab9jVb128EokSRPVJ+A/kuQPgVMZbVcAQFX9pG8jVXUGPVfeSJImo0/A/xz4G+BN/HL1TAF7DFWUJGl8fQL+tcD9qupHQxcjSZqcPleyXgbcOHQhkqTJ6jOCvwm4MMmXueUc/GLLJCVJS6hPwH+6u0mSZkif/eA/NI1CJEmT1edK1ivZzN4zVeUqms7cUadNra2rjjloam1Jmm19pmhWzbu/I/B7wJ2HKUeSNCmLrqKpqh/Pu323qt4JPGn40iRJ4+gzRbPPvIe/xmhEv+D2v5Kk7UOfKZr5+8JvAK4Cfn+QaiRJE9NnFc1Y+8JLkpZGnyma2wDP5lf3g3/rcGVJksbVZ4rmM8C1wFrmXckqSdq+9Qn4e1XV0wavRJI0UX02GzsryUMHr0SSNFF9RvD7Ai/prmj9GRCgquphg1YmSRpLn4B/+uBVSJImrs8yyW9NoxBJ0mT1mYOXJM0gA16SGmXAS1KjDHhJapQBL0mNMuAlqVEGvCQ1yoCXpEYZ8JLUKANekhplwEtSowx4SWqUAS9JjTLgJalRBrwkNcqAl6RGGfCS1KjBAj7JvZN8Ocm6JJclOXKotiRJv6rPd7Juqw3A66rq/CQ7AWuTnF5Vlw/YpiSpM9gIvqq+X1Xnd/evB9YB9xyqPUnSLU1lDj7JHPBw4NzNnDs0yZoka9avXz+NciRpWRg84JPcATgZeHVVXbfp+apaXVWrqmrVypUrhy5HkpaNQQM+ya0YhfuJVfXJIduSJN3SkKtoAhwPrKuqdwzVjiRp84YcwT8eeBHwpCQXdrcDB2xPkjTPYMskq+pMIEO9vyRpy4ZcB6+BzR112lTbu+qYg6banqTxuFWBJDXKgJekRhnwktQoA16SGmXAS1KjDHhJapQBL0mNMuAlqVEGvCQ1yoCXpEYZ8JLUKANekhplwEtSowx4SWqUAS9JjTLgJalRBrwkNcqAl6RGGfCS1CgDXpIaZcBLUqMMeElqlAEvSY0y4CWpUQa8JDXKgJekRhnwktSoFUtdgGbT3FGnTbW9q445aKrtSS1wBC9JjTLgJalRBrwkNcqAl6RGGfCS1CgDXpIaZcBLUqMGDfgkT0vyjSTfTHLUkG1Jkm5psAudkuwAvBd4CnA18LUkp1TV5UO1qeVhmhdZeYGVZtmQI/hHAd+sqiuq6ufAx4FnDtieJGmeVNUwb5w8B3haVb28e/wi4NFV9apNnncocGj38AHAN7ayqV2BH41Z7ixajv1ejn2G5dnv5dhn2LZ+36eqVm7uxJB70WQzx37lr0lVrQZWb3MjyZqqWrWtr59Vy7Hfy7HPsDz7vRz7DJPv95BTNFcD9573+F7A9wZsT5I0z5AB/zXg/kl2T3Jr4HnAKQO2J0maZ7ApmqrakORVwOeBHYAPVtVlAzS1zdM7M2459ns59hmWZ7+XY59hwv0e7ENWSdLS8kpWSWqUAS9JjZqZgF9s24OMvLs7f3GSfZaizknq0ec/6Pp6cZKzkuy1FHVOWt8tLpI8MslN3TUXM61Pn5Psn+TCJJcl+Y9p1ziEHr/jOyf51yQXdf0+ZCnqnKQkH0zywySXLnB+cllWVdv9jdGHtP8N7AHcGrgIePAmzzkQ+DdG6+8fA5y71HVPoc+PA3bp7j991vvct9/znvcl4LPAc5a67in8rO8EXA7s1j2+61LXPaV+/xnw9u7+SuAnwK2XuvYx+/0EYB/g0gXOTyzLZmUE32fbg2cCH66Rc4A7Jbn7tAudoEX7XFVnVdVPu4fnMLrWYNb13eLicOBk4IfTLG4gffr8AuCTVfVtgKpaLv0uYKckAe7AKOA3TLfMyaqqrzDqx0ImlmWzEvD3BL4z7/HV3bGtfc4s2dr+vIzRX/1Zt2i/k9wT+B3gA1Osa0h9fta/DuyS5Iwka5McPLXqhtOn3+8BHsToIslLgCOr6ubplLdkJpZlQ25VMEl9tj3otTXCDOndnyRPZBTw+w5a0XT06fc7gTdU1U2jgd3M69PnFcAjgAOA2wJnJzmnqv5r6OIG1KffvwlcCDwJuC9wepKvVtV1A9e2lCaWZbMS8H22PWhta4Re/UnyMOA44OlV9eMp1TakPv1eBXy8C/ddgQOTbKiqT0+lwsnr+/v9o6q6AbghyVeAvYBZDvg+/T4EOKZGk9PfTHIl8EDgvOmUuCQmlmWzMkXTZ9uDU4CDu0+gHwNcW1Xfn3ahE7Ron5PsBnwSeNGMj+TmW7TfVbV7Vc1V1RxwEnDYDIc79Pv9/gywX5IVSW4HPBpYN+U6J61Pv7/N6P9aSHI3RjvOXjHVKqdvYlk2EyP4WmDbgyR/1J3/AKPVFAcC3wRuZPSXf2b17PObgbsA7+tGsxtqxnfg69nvpvTpc1WtS/I54GLgZuC4qtrsMrtZ0fNn/RfAPyW5hNHUxRuqaqa3EU7yMWB/YNckVwNHA7eCyWeZWxVIUqNmZYpGkrSVDHhJapQBL0mNMuAlqVEGvCQ1yoDXspVk7yQHLnBu/yTXdrs3Xpzki0nu2p17SZL3bGOb/zNOzdLWMOC1nO3NaL3xQr5aVXtX1cMYXZTzyqlUJU2IAa9mJJlL8vUkH+pG3Sd1V31u3Dv+rG5f8fOS7Ay8FXhuN0p/7hbeN8BOwE83c+4ZSc5NckE3yr9bd/wOSU5IcklXy7M3ed2uSc5OctAk/xtI8xnwas0DgNXdqPs64LDuMvhPMNqJcC/gycANjK4E/kQ3Sv/EZt5rvyQXMrpc/snABzfznDOBx1TVwxltd/v67vifM7rE/KFdLV/a+ILuj8BpwJur6rSxeywtwIBXa75TVf/Z3f8oox02HwB8v6q+BlBV11VVnz3FN07R3Bs4AfjrzTznXsDnu0vp/xR4SHf8ycB7Nz5p3r79twL+HXh9VZ2+dV2Tto4Br9ZsuvdGMdrDZNw9OU5h9E08mzoWeE9VPRR4BbBjd3yhNjcAaxltgysNyoBXa3ZL8tju/vMZTaF8HbhHkkcCJNkpyQrgekZz633sy+jr5Ta1M/Dd7v6L5x3/AvCqjQ+S7NLdLeClwAOzhe+blSbBgFdr1gEvTnIxcGfg/d3XwT0XODbJRcDpjEbaXwYevIUPWffrzl0EvAh43Wae8xbgX5J8FZi/y+FfMvoGpku71z9x44mquonR1rhPTHLYmP2VFuRukmpGkjng1Krac6lrkbYHjuAlqVGO4CWpUY7gJalRBrwkNcqAl6RGGfCS1CgDXpIa9f+8575bQ97KlAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ALTERNATE VIEW OF BLACK VOTE: HOW MANY DISTRICTS PER 10pct BIN of PCT BLACK VOTE?\n",
    "n_bins = 10\n",
    "BlackSeats = [0.]*n_bins\n",
    "binMid = [0.]*n_bins\n",
    "for b in range(n_bins):\n",
    "    binMid[b]= float(b)/n_bins + 0.5/n_bins  #centering each bin\n",
    "for t in range(nTracts) :\n",
    "    b = int(HDvBlack[t]*n_bins)\n",
    "    BlackSeats[b] += HDweight[t]*nDistricts  #multiply by nDistricts to get number of expected seats\n",
    "\n",
    "print(\"this is a bar plot of seats by VAP pct Black for\",STATE)        \n",
    "fig, ax = plt.subplots()\n",
    "plt.bar(binMid,BlackSeats,width=0.09 )\n",
    "ax.set(xlabel=\"pct Black\", ylabel=\"number of seats\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "b1e9c437-ddf7-4202-aff0-19f338a5d013",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Black candidates would expect to win 2.588 OH seats out of 15\n",
      "Using simple Alabama-style of Blacks voting 0.9 Dem and whites voting 0.8 GOP\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Where in the state do we see opportunity home districts?  #NEW FORMULATION based on ALABAMA\n",
    "isOppor = [0]*nTracts #will track whether this is an opportunity district\n",
    "blackFracSeats = 0.\n",
    "blackPctDem = 0.9  #fraction of Black voters who are Democrats (est'd from Chen / Stephanopoulos)\n",
    "whitePctGOP = 0.8   #fraction of White voters who are Republican  (\"  \")\n",
    "#minBlack1 = 0.30\n",
    "#minBlack2 = 0.50\n",
    "for t in range(nTracts):\n",
    "    pctWhiteDem = (1-whitePctGOP)*(1-HDvBlack[t])  #this is the fraction of voters who are white Democrats\n",
    "    pctBlackDem = blackPctDem * HDvBlack[t]  #fraction of voters who are black Democrats\n",
    "    if tractPop[t] > minTractPop and HDvGOP[t] < 0.5 :  #Dems would win this Home District\n",
    "        if pctBlackDem > pctWhiteDem : #Blacks would win the primary\n",
    "            isOppor[t] = 1\n",
    "            plt.scatter(tractCPx[t],tractCPy[t],marker='.',color='blue' )\n",
    "            blackFracSeats += HDweight[t]\n",
    "        else :  #the White Dem candidate would win the election          \n",
    "            plt.scatter(tractCPx[t],tractCPy[t],marker='.',color='gray' )\n",
    "\n",
    "print(\"Black candidates would expect to win\",round(blackFracSeats*nDistricts,3),STATE,\"seats out of\",nDistricts)\n",
    "print(\"Using simple Alabama-style of Blacks voting\",blackPctDem,\"Dem and whites voting\",whitePctGOP,\"GOP\")\n",
    "x,y = wholeMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "c5125128-e4bb-4337-bc5e-3f48d7cf404f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here's the state map with Hisp+Black greater than  0.4 or even 0.5\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Where in the state do we see Black+Hispanic heavy home districts?\n",
    "minMinor = 0.40 \n",
    "minMinor2 = 0.50\n",
    "print(\"Here's the state map with Hisp+Black greater than \",minMinor,\"or even\",minMinor2)\n",
    "for t in range(nTracts):\n",
    "    if ((HDvBlack[t] + HDvHisp[t]) > minMinor and tractPop[t] > minTractPop):\n",
    "        if (HDvBlack[t] + HDvHisp[t]) > minMinor2 :\n",
    "            plt.scatter(tractCPx[t],tractCPy[t],marker='.',color='blue' )\n",
    "        else :            \n",
    "            plt.scatter(tractCPx[t],tractCPy[t],marker='.',color='gray' )\n",
    "\n",
    "x,y = tractMAP.exterior.xy\n",
    "plt.plot(x,y,c=\"green\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "58119ef8-13ef-4135-9843-6518025dda07",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a histogram of home-district population by tract; avg =  786629.8666666667\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# LET'S VISUALIZE OUR HOME DISTRICT population in a histogram\n",
    "n_bins=50\n",
    "print(\"this is a histogram of home-district population by tract; avg = \",np.sum(tractPop)/nDistricts)        \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "a = avgDistrictPop\n",
    "ax.hist(HDvPop, bins=[0.9*a,0.92*a,0.95*a,0.99*a,1.0*a,1.01*a,1.05*a,1.1*a])   #n_bins\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "1f9101bd-108a-48cb-bee5-3f4e04c18132",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a histogram of home-district area by tract\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# more HOME DISTRICT STATS in a histogram\n",
    "n_bins=50\n",
    "print(\"this is a histogram of home-district area by tract\")        \n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "# We can set the number of bins with the *bins* keyword argument.\n",
    "ax.hist(HDarea, bins=n_bins)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "d8167a80-2b91-4adc-ab34-9e010838213d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# What is the correlation of HD area to red-blue lean?\n",
    "fig, ax = plt.subplots()\n",
    "plt.scatter(HDarea,HDvGOP,marker='.' )\n",
    "ax.set(xlabel=\"tract area\", ylabel=\"home district pct GOP\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "cf95cc7c-e58a-4174-94f6-b6d4c7ccb0ff",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# What is the correlation of tract usage to red-blue lean?\n",
    "fig, ax = plt.subplots()\n",
    "plt.scatter(HDvGOP,tractUse, marker='.' )\n",
    "ax.set(xlabel=\"home district pct GOP\", ylabel=\"tractUse\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "617384b8-1e0b-45a7-ae09-babe8dd9d429",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# What is the correlation of tract usage to tract population?\n",
    "fig, ax = plt.subplots()\n",
    "plt.scatter(tractPop,tractUse, marker='.' )\n",
    "ax.set(xlabel=\"Census tract population\", ylabel=\"tractUse\")\n",
    "ax.set_xlim(left=0,right=10000)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "91f163ab-6b94-47ee-bd29-be3e751fe2b4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# UPDATED VOTES-SEATS CURVE (from votes2seats.ipynb 1/15/22)\n",
    "# LET'S REWORK OUR VOTES - SEATS CALCULATIONS\n",
    "# FIRST, LET'S DO THE BASIC VOTES-TO-SEATS, no fractional seats\n",
    "# INPUTS ARE HDvGOP[nTracts] and HDweight[nTracts]\n",
    "# HDvGOP is the redness lean of each Census tract's Home District\n",
    "# HDweight is the population of this Census tract relative to the state population\n",
    "# stateGOP is the statewide fraction of GOP vote vs. GOP + Dem vote\n",
    "# KEY EQUATION:\n",
    "# expected Seats at a given vote V = sum(HDweight) for tracts with HDvGOP > 0.5 + (V - stateGOP)\n",
    "# for easy calculation, create ~1000 bins, each bin containing HD's in a dV vote window\n",
    "nBins = 1000\n",
    "dV = 1./nBins\n",
    "binWeight = [0.]*nBins\n",
    "\n",
    "for t in range(nTracts):\n",
    "    binNo = int(HDvGOP[t]*nBins)   #which vote bin does this tract's vote go into for the expected statewide vote?\n",
    "    binWeight[binNo] += HDweight[t]\n",
    "    \n",
    "binVote = [0.]*nBins  #this will store the statewide vote for this bin\n",
    "for b in range(nBins) :\n",
    "    binVote[b] = b*dV\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "plt.plot(binVote, binWeight, marker='.',linestyle=\"none\")\n",
    "ax.set(xlabel=\"district pct GOP\", ylabel=\"bin weight\")\n",
    "plt.show()   #this should resemble above histogram"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "85608d3f-c3bd-4d91-9378-16270ceeb9b6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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NZUZM2ZklRk9ejQnTpxg8ODBREdH06VLF3744QeOHTtGZGQkAC+//HLW7xMmTGDGjBnExcUxeLCz+uyiRYto164d/fv3Z82av7saP/jgA7p27UqXLl3497//neeeIiMj2bvXmVZkyZIl3OZZwS02NpbIyEg6derEF198wf79+5k+fTqjR48mKiqK9PT0Is/t1saNG2natCnVq1enevXqNG3alM2b8w5i+PLLL+natStDhw4lJSUla/u///1vnnjiiRxlQ0JCAEhNTaVRo0ZULkFTjBTWR/A4MCjb+wo4fQRVgDeBD3wYlwkw+dUGburU2A+RlAzx8fFERUW5Klu7dm327t1LnTp1srbNmzePNWvWUK5cOTIyMggKCuLVV18lztNBfeTIERYudJYeHz58OO+//z633noro0aNyiozefJkmjdvzhtvvMGuXbu4+uqrWbJkCVWrVmXPnj0sXryY2rVrk5yczMKFC5k6dSobNmzIiuHhhx/m008/5ayzzuKyyy4DICkpiYkTJ7J48WLKly/PgAEDSEhI4Lzz/l5qdNCgQbz33nsMHTqUt99+m1tvvZXVq1ezePFili5dSnJyMhdeeCHr16/ntttuo3nz5tx8882uzr1s2TJGjhyZ599w1KhRdO/ePev9/v37qVHj75po9erV2bcv54DJDh06sHHjRipWrMiTTz7J888/z9NPP01cXBwtW7bkzDPPzHOd6667ju+++457772X4ODgIv+2xaWwRBCiqr9ne/+9Z+joPhGp4uO4TAAZN3ddntpAWNWQgK4NdOjQgQULFmS9z+wjyM+ePXsIC8u5ftS4ceO44447CAoK4rHHHqNNmzY59q9du5annnqKY8eOsWvXLqpVq5bnvAkJCSxdupT58+cDZPVFREdH880335CSkkK/fv345ptv2LNnD/Xq1cuRCA4ePEijRs6iQRdeeCEAmzZtYvv27fTs2ROAAwcOsH379hwf1jfeeCNXXXUV99xzD8uXL2fSpEm8//77XHTRRYgI1atXp06dOlm1hkxuzh0ZGZmV6ApTs2bNHE07ycnJ1KxZM0eZ0NC/p1676aabshLMuHHjmDlzZp6mIXBqQ0ePHqVbt24MHDiQ1q1bFxlLcSgsEeRomFXV+7O9re2bcEygmbFiR75TSTzcM9wP0ZQ+L730EhdffDFBQX+38qoqPXr0oF+/fnz//feMGjWK2bNn5ygzevTorKaWxx9/HFUFyFGDaNOmDc2bN+ehhx4C4Pjx4wB0796dBx98kF69etG9e3duuukmOnbsmCe20NBQEhMTadiwIStXrqR58+Y0a9aM5s2bs2DBgqxrZV47U+3atQkLC+O5556jb9++iAjh4eG8/vrrqCrJycns3r2bsLAwQkJCSEtzpih3c263NYIWLVqwdetWDh48CMDWrVvzJOPk5GTOOOMMAL799lvCw8M5dOgQO3fuZNCgQaSkpLB27VpGjx7NE088wYkTJwgJCaFixYpUqlSJSpUqFfanLVaFJYIVInKXqr6efaOI3AP84NuwTCCI357Ekx/nbRJqVTfUlp8sxNSpU1mwYAEpKSm0bds2TwdvWloavXv3Bpz26FGjRgHOt+EBAwYwcOBABg0axJ133kl4eDhnnHFGVo3g2muvpW/fvvTu3Zt7772XoUOHEh0dDUBERAQTJkygY8eOrF+/nnHjxtG8eXN27tyZ40M008SJE+nXrx/169fP+vZcq1Ythg0bRvfu3QkODqZ8+fK89dZb1K1bN8ext956K4MGDeKXX34BnE7ozp07ExkZSUZGBhMnTiQoKIiePXsybNgwPv/8c95///0iz+22RhAcHMzYsWOzmrTGjh1LcHAwO3fuZMKECUycOJF3332XadOmUblyZcLCwpg2bRqhoaGsXr0acEZ/DR48mCeffJITJ07Qq1cvAI4dO8bAgQNp2rRpkXEUF8mdMbN2iNQB5gDHgB89mzvg9BVcpap5n/opBhEREbpq1aqiC5oS7+63VuX78NjsezvbSCFjvExE4lU1Ir99hU1DvRvoLCLdgcwGxi9U9VsfxGgC0Nq/DubZZsNFjSl+hTUNAeD54LcPf+NV8duT+CMpJce2VnVDA7qD2Bh/KfSBMmN8Jb/hos8OOC+fksYYX7NEYIrdsJk/5Rku2rx2FWsSMsZPimwaMsabbp26It/F6O/o0swP0RhjwBKBKQYzVuzglYUb+Ss5lYx8BqnZcFFj/MsSgfGpgmoA2VnfgDH+5dM+AhG5XEQ2iMgmERmRz34RkZc8+38Wkfa+jMcUn3Fz19HiiS+KTAI2XNQY//NZjUBEgoFXgJ5AIrBSRD5V1V+zFesNtPC8OgGTPD+9Ln57EuPmrWPtH8kcS89AFYIERIQM1az3CsW6z9/X90Xc6RnO+8KEVghmZJ/W1iRkTAngy6ahC4FNqroFQERmAlcC2RPBlcBb6jzevFxEqotIPVX9y5uBxG9P4vrJS0nP9enktFdrrvfFvc/f1/dF3AWrWD6I2yKb2PMCxpQgvkwEDYDss5cmkvfbfn5lGgA5EoGI3A3cDWTNZngylm/ZlycJmOJlNQBjSi5fJgLJZ1vuj2M3ZVDVKcAUcOYaOtlALmpWi2DBkoGfXNWuPi8OusDfYRhjCuDLRJAInJXtfUPgz1Moc9o6NK7B+0M6Wx9BMcZdPjiIc+tXY3jvVtYZbEwJ58tEsBJoISJNgT9wVju7MVeZT4H7Pf0HnYBkb/cPZOrQuAYfDOnsi1MbY0yp5rNEoKppInI/8CUQDExT1bUiMsSzfzIwF+gDbAKOArf7Kh5jjDH58+kDZao6F+fDPvu2ydl+V+A+X8ZgjDGmcDbpnDHGBDhLBMYYE+AsERhjTICzRGCMMQGuwMXrSyoR2QNsP8XDw4DCZ0Ere+yeA4Pdc2A4nXturKq189tR6hLB6RCRVaoa4e84ipPdc2Cwew4MvrpnaxoyxpgAZ4nAGGMCXKAlgin+DsAP7J4Dg91zYPDJPQdUH4Exxpi8Aq1GYIwxJpcymQgCca1kF/d8k+defxaRpSJyvj/i9Kai7jlbuY4iki4i1xZnfL7g5p5FJEpEVovIWhH5rrhj9DYX/22fISKficgazz2X6skrRWSaiOwWkV8K2O/9zy9VLVMvnJlONwPNgBBgDdA6V5k+wDychXEuAlb4O+5iuOfOQA3P770D4Z6zlfsWZ/LDa/0ddzH8navjLAfbyPO+jr/jLoZ7fgIY7/m9NrAfCPF37Kdxz92A9sAvBez3+udXWawRZK2VrKrHgcy1krPLWitZVZcD1UWkXnEH6kVF3rOqLlXVJM/b5TiLAJVmbv7OAEOB2cDu4gzOR9zc843AR6q6A0BVS/t9u7lnBUJFRICqOIkgrXjD9B5VXYRzDwXx+udXWUwEBa2DfLJlSpOTvZ87cb5RlGZF3rOINAAGAJMpG9z8nVsCNUQkTkTiReTWYovON9zc83+BVjirGyYAD6pqRvGE5xde//zy6XoEfuK1tZJLEdf3IyLROImgi08j8j039/wiMFxV050vi6Wem3suB3QALgUqActEZLmq/ubr4HzEzT1fBqwGugNnA1+LyGJVPejj2PzF659fZTERlJi1kouRq/sRkbbAG0BvVd1XTLH5ipt7jgBmepJAGNBHRNJUdU6xROh9bv/b3quqR4AjIrIIOB8orYnAzT3fDoxTpwF9k4hsBc4BfiieEIud1z+/ymLTUNZaySISgrNW8qe5ynwK3Orpfb8IH66VXEyKvGcRaQR8BNxSir8dZlfkPatqU1VtoqpNgA+Bf5biJADu/tv+BOgqIuVEpDLOWuDrijlOb3JzzztwakCIyJlAOLClWKMsXl7//CpzNQINwLWSXd7zKKAW8KrnG3KaluIJu1zec5ni5p5VdZ2IzAd+BjKAN1Q132GIpYHLv/MzwHQRScBpNhmuqqV2VlIReQ+IAsJEJBGIAcqD7z6/7MliY4wJcGWxacgYY8xJsERgjDEBzhKBMcYEOEsExhgT4CwRGGNMgLNEYAolIsM849G9Us7Fef4tIj3y2R4lIp+f7vkLuW47Eenjo3NPF5GtnhlB14tITLZ9b4hIa19cN1cM93tmq1QRCcu2vcCZLAua9VNEaorI1yKy0fOzRgHXbCMi34rIb56yT3vmA0JEbhOR/+YqHycipXZIc2lmicAUZRjg5gPebblCqeooVV1wuuc5Be1wxmb7ymOq2s5znX+ISFMAVR2sqr/68LqZlgA9gO25tvcGWnhedwOTAEQkGHjFs781cEO2hDUC+EZVWwDfeN7nICKVcB58GqeqLXGebu4M/NO7t2W8wRKBAUBEqojIF+LM6f6LiAwUkQeA+sBCEVnoKTdJRFaJM+97rGdbfuV6icgyEflRRD4QkaoicqGIfOTZf6WIpIhIiIhUFJEtnu3TxbNugOcb6XoR+R64Oles00RkpYj8JCJ5Zh0VkVnZv+F7znuN51pvikiC59hozxOr/wYGer61D3RzjVzXayIi60Tkdc+/zVeeD8PcKnp+HvEcl/UtWEQOi8hoz99guThPySIi13n+JmvEmTLipKnqT6q6LZ9dBc1kWdisn1cC//P8/j/gqnzOeyOwRFW/8lz/KHA/+SQN43+WCEymy4E/VfV8VT0XmK+qL+HMYRKtqtGeck96nkhuC1wiIm1zl/M0PTwF9FDV9sAq4GHgR+ACz3m6Ar8AHXGmQViRPRgRqQi8DvTzlK2bbfeTwLeq2hGIBiaISJVc9zMTGOg5VwjOFARzgfsAVPU84AacD7IgnCevZ6lqO1Wd5fIaubUAXlHVNsAB4Jps+yaIyGqceWJmFjA9dBVguaqeDywC7vJsHwVc5tneP/dBIhLqSWD5vYpqdipoJsvCZrg8M3NKA8/POvmctw0Qn32Dqm4GqopINc+mgdljxZkbyviBJQKTKQHoISLjRaSrqiYXUO56EfkR+Annf/b8Pmgu8mxf4vkf/B9AY1VNw5kUrBXON84XcBbh6AosznWOc4CtqrrRM5nYO9n29QJGeM4dh/Mtu1Gu4+cB3UWkAk7zxiJVTcGZdfVtAFVdj9NU0jKfe3Bzjdy2qupqz+/xQJNs+zKbhuoCl4pI53yOPw5k9oNkP34JzhQKd+FMs5CDqh7yJLD8XkU1OxU0k+XpznAphZTP3D4re6w4XxiMH5S5uYbMqVHV30SkA047+VgR+UpV/529jKdd+1Ggo6omich0/m7qyFEU+FpVb8hn32KcD+YTwAJgOs6H26P5hVVAuAJco6obCrmfVBGJw5mieCDwXrZj3SjyGvk4lu33dJxpoHPHddgTVxdgaa7dJ/TvOV/S8fz/qapDRKQT0BdYLSLtss8eKyKh5E2kmW4sIhkUNJNlSAHbAXaJSD1V/cvTjJRf7WYtTpLPIiLNgMOqekjKxrTgZYbVCAwAIlIfOKqq7wDP4yyVB3AICPX8Xg2nbTvZ037dO9spspdbDlwsIs09564sIpnfuhfhdCwvU9U9OBPhnYPzwZHdeqCpiJzteZ89qXwJDBXJGoFyAfmbiTMhV1fPMZnXv8lzXEucb/kbcsVf4DVEpIGIfFPA9YokIuVwmsI2n8QxZ6vqClUdBewl5wf06dYICprJsrBZPz/FqeXh+fmJJ87s/zbvAl3EMwLM01/yEvCc2/s2xccSgcl0HvCDpynkSeBZz/YpwDwRWaiqa3CahNYC03CaLMin3B7gNuA9EfkZJzGc4ym3AjgT5wMZnFkyf872TRhwvtHjjGL5wtNZnH20yzM4szH+LM4C388UcE9f4XwrXeDp8AR4FQgWZ6bKWcBtqnoMWAi0zuwsLuQa9Ti1ZRAz+wh+xmmG++gkj03wxLEIZ93ekyIiD4gzk2VDnHt6w7NrLs6UzZtw+mT+Cc6snzidu1/iTGP9vqpmJutxQE8R2Qj09LyHbP82nma4K4GnRGSD555X4qwmZkoYm33UmJMgzpTIO1Q195z4Ac/+bUovSwTGGBPgrGnIGGMCnCUCY4wJcJYIjDEmwFkiMMaYAGeJwBhjApwlAmOMCXCWCIwxJsD9P71nI4vMzZXcAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#continuing with votes-to-seats, let's compute the S(V) curve with no fractional-seat smearing\n",
    "cumVote = [0.]*nBins\n",
    "for b in range(nBins) :\n",
    "    cumVote[nBins-b-1] = np.sum(binWeight[:(b+1)])  #cumulative weight of all Home Districts below vote b*dV\n",
    "    # print(\"bin, bin vote, cumVote for this bin\",b,b*dV,cumVote[b] )\n",
    "    \n",
    "cumSeats = [0.]*nBins  #this will sum the seats earned for a given statewide vote\n",
    "stateVoteBin = int( (stateGOP+0.5*dV)*nBins )   #which bin (out of 1/dV) holds the statewide total vote?\n",
    "for b in range(nBins) :\n",
    "    bb = int( max(0,min(nBins-1,nBins/2 + b-stateVoteBin)) )\n",
    "    cumSeats[b] = 1. - cumVote[bb]\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "plt.plot(binVote, cumSeats, marker='.',linestyle=\"none\")\n",
    "ax.set(xlabel=\"statewide vote, nBins =\"+str(nBins)+\",\"+str(STATE), ylabel=\"GOP seats won (no fractl smearing)\")\n",
    "RANGE = [0.1, 0.9]\n",
    "fifty50 = [0.5, 0.5]\n",
    "expected = [stateGOP, stateGOP]\n",
    "plt.plot(RANGE,fifty50)\n",
    "plt.plot(fifty50,RANGE)\n",
    "plt.plot(expected,RANGE, linestyle=\"--\",color='red')\n",
    "\n",
    "#LET'S ALSO crudely ESTIMATE RESPONSIVENESS near the STATEWIDE VOTE, with a pseudonormal weighting and lst-sq fit\n",
    "stateSigma = 0.03  #User-adjustable, this is the uncertainty in the statewide vote from election to election\n",
    "usedBins = int(stateSigma/dV)\n",
    "nFitPoints = 6*usedBins\n",
    "voteData = [0.]*nFitPoints\n",
    "seatData = [0.]*nFitPoints\n",
    "counter = 0\n",
    "for b in range(nBins):\n",
    "    if ( abs(b-stateVoteBin) <= 2*usedBins ):  #include this S-V pair in our line fit\n",
    "        voteData[counter]=binVote[b]\n",
    "        seatData[counter]=cumSeats[b]\n",
    "        counter += 1\n",
    "        # print(b,counter)\n",
    "        if ( abs(b-stateVoteBin) < usedBins) : #double count this in data set\n",
    "            voteData[counter]=binVote[b]\n",
    "            seatData[counter]=cumSeats[b]\n",
    "            counter +=1\n",
    "fit = np.polyfit(voteData,seatData,1)  #first-order linear regression with old polyfit\n",
    "Rsimple = fit[0]     #slope is fit[0] in y = mx + b, intercept is fit[1]\n",
    "y0 = fit[1]\n",
    "Rx = [stateGOP - 4.*stateSigma, stateGOP + 4.*stateSigma]\n",
    "Ry = [y0 + Rx[0]*Rsimple, y0 + Rx[1]*Rsimple]\n",
    "plt.plot(Rx,Ry ) \n",
    "ax.text(Rx[1]+0.02, Ry[1]+0.02, \"R = \"+str(round(Rsimple,4)), transform=ax.transAxes, fontsize=14,color='purple')\n",
    "expectedSeats = cumSeats[stateVoteBin]\n",
    "ax.text(0.02,expectedSeats+0.03,\"expected seats = \"+str(round(expectedSeats,3)),transform=ax.transAxes,fontsize=9)\n",
    "ax.text(stateGOP+0.01,0.1,\"HD statewide vote = \"+str(round(stateGOP2,3)),transform=ax.transAxes,fontsize=9)\n",
    "Ex = [0,stateGOP ]\n",
    "Ey = [expectedSeats, expectedSeats]\n",
    "plt.plot(Ex,Ey, linestyle='-.',color='red')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "ce47266f-e2ea-4649-b10c-e8225994c122",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#3/6/22 - alternate votes-to-seats with fractional seat smearing.\n",
    "# First, compute the general cdf sliver for -3 sigma to +3 sigma\n",
    "# Then, apply this smearing to the binVote weights\n",
    "seatVar = 0.04\n",
    "nBins = 1000\n",
    "nSigma = 6.  #how many total sigma of deviation we are explicitly modeling; the rest go into the tails\n",
    "nSlivers = 2*int(3*nBins*seatVar)  #budget for 3 sigma on either side of the expected vote\n",
    "sliverWt = [0.]*nSlivers  #each sliver holds the cdf reflecting the relative distance from the mean vote\n",
    "sliverSigma = [0.]*nSlivers\n",
    "totalSliverWt = 0.\n",
    "for nS in range(nSlivers):\n",
    "    dSigmaHigh = nSigma* (nS+0.5 - nSlivers/2) / float(nSlivers)\n",
    "    dSigmaLow =  nSigma* (nS-0.5 - nSlivers/2) / float(nSlivers)\n",
    "    sliverSigma[nS] = 0.5*(dSigmaHigh+dSigmaLow)  #for plotting; keeps track of this sliver's center sigma\n",
    "    sliverWt[nS] = norm.cdf(dSigmaHigh) - norm.cdf(dSigmaLow)\n",
    "    totalSliverWt += sliverWt[nS]\n",
    "lowSliverWt = 0.5 * (1. - totalSliverWt)\n",
    "highSliverWt = lowSliverWt\n",
    "#print(\"each tail of distribution has weight\",round(lowSliverWt,4) )\n",
    "#plt.plot(sliverSigma,sliverWt)\n",
    "#plt.show()\n",
    "# OK, that worked as expected.  Now, do the smearing of each bin\n",
    "smearedBinWeight = [0.]*nBins\n",
    "for b in range(nBins):\n",
    "    centerBinNo = b #int(HDvGOP[t]*nBins)   #which vote bin does this tract's vote go into for the expected statewide vote?\n",
    "    binOffset = int(nSlivers/2)\n",
    "    for nS in range(nSlivers):\n",
    "        binNo = centerBinNo + nS - binOffset\n",
    "        if (binNo < 0): #deep blue district; variance would push vote %R < 0\n",
    "            binNo = 0\n",
    "        if (binNo >= nBins):  #deep red district; variance would push vote %R > 1\n",
    "            binNo = nBins - 1\n",
    "        smearedBinWeight[binNo] += binWeight[b]*sliverWt[nS]\n",
    "    # Now put the tails into the correct bins\n",
    "    binNo = centerBinNo -1 - binOffset  #left tail\n",
    "    if binNo < 0:\n",
    "        binNo = 0\n",
    "    smearedBinWeight[binNo] += binWeight[b]*lowSliverWt\n",
    "    binNo = centerBinNo + nSlivers - binOffset  #right tail\n",
    "    if binNo >= nBins:\n",
    "        binNo = nBins -1 \n",
    "    smearedBinWeight[binNo] += binWeight[b]*highSliverWt\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "plt.plot(binVote, binWeight, marker='.',linestyle=\"none\",label=\"unsmeared\")\n",
    "plt.plot(binVote, smearedBinWeight, marker='o',linestyle=\"none\",label=\"smeared\")\n",
    "RANGE = [0.0, 0.5*np.max(binWeight)]\n",
    "sGOP = [stateGOP, stateGOP]\n",
    "plt.plot(sGOP,RANGE,linestyle=\"-\",label=\"statewide \"+str(round(stateGOP,3)) )\n",
    "ax.set(xlabel=\"district pct GOP\", ylabel=\"bin weight\")\n",
    "plt.legend()\n",
    "plt.show()   #this should resemble above histogram"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "8a2d7de3-ea93-4447-bb69-36defbae38df",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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gQMH8uGHH+baburUqfTr14+6desCcMoppwCwd+9eFi5cyPXXXw9A2bJlqVq1asC+qsq7777LlVdeCcCUKVPo168fPXr0oFGjRowePdq37dtvv03Lli05/fTTueOOO0KW+c4776R58+a0atWK2z0jWwcPHszNN99M165dadCgAV988QVDhgyhWbNmDB482LfvZ599xtlnn02bNm3o378/+/fvB5wsqu3ateP0009n6NCheAcrdunShbvvvpu//e1vPPvss4X98ZrjMOPei+jiciaU908Zsczd1IKAyaVUXpp5B2z6u+IKGD4cDh6EXr1yrx882Hns2gWXXx64rqCBn1lZWdSpU8f3PjU1lWXLluXabsOGDRw9epQuXbqwb98+br31Vq699lo2b95MtWrVuO6661i9ejVnnXUWzz77bEByuEWLFlG9enUaNWrkW7Zq1SoyMjIoV64cTZo04R//+Acul4s77riDlStXcuKJJ3LhhReSnp7OJZdc4tvv999/54MPPuCHH35ARNi9e7dv3R9//MH8+fOZMWMGF198MYsXL+aVV16hXbt2rFq1itTUVB588EHmzp1LpUqVePTRR3nqqacYO3YsI0aMYOzYsQBcc801zJw505cxdffu3XzxxRf5/yBNRASPE/DWBNwIj7kH+razIGC8rEYQAaHSdIj/ZZhHdnY2K1euZNasWXz66ac88MADbNiwgezsbL755htuvvlmMjIyqFSpUq52hrfffttXG/A6//zzqVKlCuXLl6d58+b89NNPfP3113Tp0oVq1aqRnJzMoEGDWLhwYcB+J5xwAuXLl+eGG25g+vTpVKxY0bfu4osvRkRo2bIl1atXp2XLliQlJdGiRQu2bt3K0qVL+e677+jUqROtW7fmtdde46effgLg888/p0OHDrRs2ZL58+ezbt0633EHDBhQ+B9saXfyyc4jghbd25lzggaLAfye8xeuOHJvQLoICwLGq1TWCPK7gq9YMf/1KSmFT/2SmpoakDE0MzOTWrVqhdwuJSWFSpUqUalSJc4991xWr15N586dSU1NpUOHDgBcfvnlAYEgOzub6dOns3LlyoDjBae+zs7ODhmUgiUnJ7N8+XLmzZtHWloazz//PPPnzw84pn/aa+/77OxsXC4X3bp14+233w445uHDhxk+fDgrVqygTp06jBs3jsOHD/vWW+rrEDyTF0XK7HG96RlixHAOcGP27ZYzyOTJagQR0K5dOzZu3MiWLVs4cuQIaWlp9OnTJ9d2ffv2ZdGiRWRnZ3Pw4EGWLVtGs2bNqFGjBnXq1GH9+vUAzJs3L6Chee7cuTRt2pTU1NQCy9KhQwe++OILdu3ahdvt5u23386V+nr//v3s2bOHXr168cwzz4Sd6RSgY8eOLF68mE2bNgFw8OBBNmzY4PvST0lJYf/+/bz33nthH9MU3VPj7wqZQE5xxgl4g8AJ5VwWBEwuUa0RiEgP4FmcqS5eUdVHgtZXAd4E6nrK8oSq5s7THOeSk5N5/vnn6d69O263myFDhtCiRQvAmXQGYNiwYTRr1owePXrQqlUrkpKSuOGGGzj99NMBeO655xg0aBBHjhzJla46LS0t122hvNSsWZPx48fTtWtXVJVevXrRt2/fgG327dtH3759OXz4MKrK008/Hfa5VqtWjSlTpnDllVf6ZkN78MEHady4MTfeeCMtW7akXr16tGvXLuxjJqy77nKex48v0mG6PbWANw5NhRDTSd7tN1jM2gRMXqKWhlpEXMAGoBuQCXwNXKmq3/ltczdQRVXvEJFqwHqghqoeyeu4loa69Cktv79YpKEek76WS1dcSxvXZuBY47AFARMsvzTU0bw11B7YpKqbPV/saUDfoG0UqCxOy+pfgN+B7CiWyZhS5cwVdxQYBAALAiZf0QwEtQH/ORczPcv8PQ80A34G1gK3qmpO8IFEZKiIrBCRFTt37oxWeY0pUa6+9/+41LUYCOwh9J371IAg8MyA1sVcMlPSRDMQ5O4/6Vys+OsOrAJqAa2B50XkhFw7qU5U1baq2rZatWqRLqcxJU6Hh+ZwX87zvkRyqs7DDYx1X+fb7uqOdW0uAVOgaAaCTKCO3/tUnCt/f9cB09WxCdgCNI1imYyJH6mpzqOQuj21gEcO3UeDpF8Dlu/TclxxZJyvh5AlkDPhimavoa+BRiJSH8gCBgJXBW2zDTgfWCQi1YEmwOYolsmY+PHmm4XeZUz6Wu7+fUxA+ghvf4+Hs6/2BYFOp51kQcCELWqBQFWzRWQE8ClO99FXVXWdiAzzrJ8APABMEZG1OLeS7lDVXdEqkzElXageQgAL3C197QLVK5e1+QRMoUR1QJmqzlbVxqp6mqo+5Fk2wRMEUNWfVfVCVW2pqqerauEvkeJIOKmo80pDXa9ePVq2bEnr1q1p2/ZYD69Vq1bRsWNH3/Lly5dH/TwiZfDgwTawLD8jRzqPMK0Zd1ZAEPD6LacS12U7YxJswJg5HqUyxUQshJOKOr801ODk6klJSQlYNnr0aO6991569uzJ7NmzGT16NAuK0O+8qNxuNy6XK2afX6oUYkT3wkcupbM6o7n9awIAT/glkrNuouZ4WIqJCAknFXVeaajzIyLs3bsXgD179vhyGK1bt4727dvTunVrWrVqxcaNG9m6dStNmzb1jVgeNGgQc+fOpVOnTjRq1MhXmzhw4ABDhgyhXbt2nHnmmb5ybt26lc6dO9OmTRvatGnDV199BTi1mK5du3LVVVfRsmVL3G43o0aNol27drRq1YqXX34ZcJLvjRgxgubNm3PRRRflCnTm+GR88DTnHHJyQfkHgb1anrv8xgtYN1FzvEpnjWBul9zL6l4BjYdD9kFYECIPdYPBzuPwLvgyKA/1BQsK/MhwUlHnlYYanC/8Cy+8EBHhpptuYujQoQA888wzdO/endtvv52cnBzfl/OECRO49dZbfWkp3G43v/76K5s2bWLatGlMnDiRdu3aMXXqVL788ktmzJjBww8/THp6Og899BDnnXcer776Krt376Z9+/ZccMEFnHLKKcyZM4fy5cuzceNGrrzySryjuJcvX863335L/fr1mThxIlWqVOHrr7/mzz//pFOnTlx44YVkZGSwfv161q5dy6+//krz5s0ZMmRIgT87k4/ty2m1alzAfMMAWe6TOCf7ed/7TqedZN1EzXErnYEgBsJJRe1NQz1v3jwOHTrE2WefTceOHWncuDGLFy+mVq1a7Nixg27dutG0aVPOPfdcXnrpJZ5++mkuu+wy3n33Xa6//nrmzp3L2WefzUMPPURmZib9+vXzzVNQv359WrZ0eou0aNGC888/35dWeuvWrYAzscyMGTN44oknACdz6LZt26hVqxYjRoxg1apVuFwuNmzY4Ct7+/btqV+/vm//NWvW+O7/79mzh40bN7Jw4UKuvPJKXC4XtWrV4rzzzovsDzkBbXntJuqRO4fQP93/9G1jjcOmqEpnIMjvCj65Yv7ry6eEVQMIFk4q6rzSUDdu3Ni37SmnnMKll17K8uXLOffcc3nttdd8s3r179+fG264AYCrrrqKDh06MGvWLLp3784rr7xCgwYNcqWO9k8r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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#continuing with votes-to-seats, let's compute the S(V) curve with no fractional-seat smearing\n",
    "smearedBinVote = [0.]*nBins  #this will store the statewide vote for this bin\n",
    "cumSmearedVote = [0.]*nBins\n",
    "for b in range(nBins) :\n",
    "    smearedBinVote[b] = b*dV\n",
    "    cumSmearedVote[nBins-b-1] = np.sum(smearedBinWeight[:(b+1)])  #cumulative weight of all Home Districts below vote b*dV\n",
    "    # print(\"bin, bin vote, cumVote for this bin\",b,b*dV,cumVote[b] )\n",
    "    \n",
    "cumSmearedSeats = [0.]*nBins  #this will sum the seats earned for a given statewide vote\n",
    "stateVoteBin = int( (stateGOP+0.5*dV)*nBins )   #which bin (out of 1/dV) holds the statewide total vote?\n",
    "for b in range(nBins) :\n",
    "    bb = int( max(0,min(nBins-1,nBins/2 + b-stateVoteBin)) )\n",
    "    cumSmearedSeats[b] = 1. - cumSmearedVote[bb]\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "plt.plot(smearedBinVote,cumSmearedSeats, marker='o',linestyle=\"none\",label=str(seatVar)+\" smear\")\n",
    "plt.plot(binVote, cumSeats, marker='.',linestyle=\"none\",label=\"no smear\")\n",
    "ax.set(xlabel=\"statewide vote, nBins =\"+str(nBins)+\", state=\"+str(STATE), ylabel=\"GOP seats won\")\n",
    "RANGE = [0.1, 0.9]\n",
    "fifty50 = [0.5, 0.5]\n",
    "expected = [stateGOP, stateGOP]\n",
    "expectedSeats = cumSeats[stateVoteBin]\n",
    "expectedS = [expectedSeats,expectedSeats]\n",
    "smearedSeats = cumSmearedSeats[stateVoteBin]\n",
    "smearedS = [smearedSeats,smearedSeats]\n",
    "plt.plot(RANGE,fifty50)\n",
    "plt.plot(fifty50,RANGE)\n",
    "plt.plot(RANGE,smearedS, linestyle=\"--\",color='blue',label=str(round(expectedSeats,3))+\"no smear\")\n",
    "plt.plot(RANGE,expectedS, linestyle=\"--\",color='orange',label=str(round(smearedSeats,3))+\"smeared\")\n",
    "plt.plot(expected,RANGE, linestyle=\"--\",color='red')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "597b7758-4f83-40f7-8909-4946e64267ad",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "simpler and fractional-seat-smeared (var of 0.04 ) responsiveness are 2.651 2.559\n",
      "fractional expected GOP seats =  9.875  out of  15 seats\n",
      "simpler expected GOP seats =  10.0065  out of  15 seats\n"
     ]
    }
   ],
   "source": [
    "#Finally, let's compare responsiveness using smeared (fractional seat variance) to non-smeared calculated above\n",
    "#LET'S ALSO crudely ESTIMATE (smeared) RESPONSIVENESS near the STATEWIDE VOTE, as we did for non-smeared\n",
    "stateSigma = 0.03  #User-adjustable, this is the uncertainty in the statewide vote from election to election\n",
    "usedBins = int(stateSigma/dV)\n",
    "nFitPoints = 6*usedBins\n",
    "voteData = [0.]*nFitPoints\n",
    "seatData = [0.]*nFitPoints\n",
    "counter = 0\n",
    "for b in range(nBins):\n",
    "    if ( abs(b-stateVoteBin) <= 2*usedBins ):  #include this S-V pair in our line fit\n",
    "        voteData[counter]=smearedBinVote[b]\n",
    "        seatData[counter]=cumSmearedSeats[b]\n",
    "        counter += 1\n",
    "        # print(b,counter)\n",
    "        if ( abs(b-stateVoteBin) < usedBins) : #double count this in data set\n",
    "            voteData[counter]=smearedBinVote[b]\n",
    "            seatData[counter]=cumSmearedSeats[b]\n",
    "            counter +=1\n",
    "fit = np.polyfit(voteData,seatData,1)  #first-order linear regression with old polyfit\n",
    "Rsmeared = fit[0]     #slope is fit[0] in y = mx + b, intercept is fit[1]\n",
    "y0 = fit[1]\n",
    "\n",
    "print(\"simpler and fractional-seat-smeared (var of\",seatVar,\") responsiveness are\",round(Rsimple,3) ,round(Rsmeared,3) )   \n",
    "print(\"fractional expected GOP seats = \",round(nDistricts*smearedSeats,3),\" out of \",nDistricts,\"seats\")\n",
    "print(\"simpler expected GOP seats = \",round(nDistricts*expectedSeats,4),\" out of \",nDistricts,\"seats\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "86f82727-7193-4194-aa61-2b99408dbcb6",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
